# Relative To Absolute Path Convertor

**URL:** <https://www.ruby-forum.com/t/relative-to-absolute-path-convertor/107239>\
**Category:** Ruby\
**Created:** [June 19, 2007, 2:17pm UTC](https://www.ruby-forum.com/t/relative-to-absolute-path-convertor/107239 "2007-06-19T14:17:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ciocan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e19adc/32.png) [@ciocan](https://www.ruby-forum.com/u/ciocan)\
**Post date:** [June 19, 2007, 2:17pm UTC](https://www.ruby-forum.com/t/relative-to-absolute-path-convertor/107239/1 "2007-06-19T14:17:59Z")

</div>

Is there a built in function/plugin that converts  
relative paths from a html page to absolute ones?

Example:  
target url: [http://mysite.com/folder/url.html](http://mysite.com/folder/url.html)

url content:  
…

some link  
…

converted content:  
…

\< a href=“[http://mysite.com/folder/link.html](http://mysite.com/folder/link.html)”\>some link\</ a\>  
…

How can I accomplish this using ruby ?

---

<div class="post-metadata">

**Author:** ![ciocan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e19adc/32.png) [@ciocan](https://www.ruby-forum.com/u/ciocan)\
**Post date:** [June 19, 2007, 3:00pm UTC](https://www.ruby-forum.com/t/relative-to-absolute-path-convertor/107239/2 "2007-06-19T15:00:45Z")

</div>

Dear Ciocan,

you could use something like

str=“[http://mysite.com/folder/url.html](http://mysite.com/folder/url.html)”  
p File.dirname(str)  
p File.basename(str)  
p File.basename(str,“.html”)

Best regards,

Axel

---

<div class="post-metadata">

**Author:** ![ciocan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e19adc/32.png) [@ciocan](https://www.ruby-forum.com/u/ciocan)\
**Post date:** [June 20, 2007, 3:03pm UTC](https://www.ruby-forum.com/t/relative-to-absolute-path-convertor/107239/3 "2007-06-20T15:03:32Z")

</div>

On 6/19/07, ciocan [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> …
> 
> converted content:  
> …
> 
> \< a href=“[http://mysite.com/folder/link.html](http://mysite.com/folder/link.html)”\>some link\</ a\>  
> …
> 
> How can I accomplish this using ruby ?

Use URI#merge:

> > require ‘uri’  
> > =\> true  
> > base = URI.parse(“[http://mysite.com/folder/url.html](http://mysite.com/folder/url.html)”)  
> > =\> #\<URI::HTTP:0x4160a54 URL:[http://mysite.com/folder/url.html](http://mysite.com/folder/url.html)\>  
> > base.merge(“/script.js”).to\_s  
> > =\> “[http://mysite.com/script.js](http://mysite.com/script.js)”  
> > base.merge(“link.html”).to\_s  
> > =\> “[http://mysite.com/folder/link.html](http://mysite.com/folder/link.html)”
