Class: WWW::Mechanize

Inherits:
Object
  • Object
show all
Defined in:
lib/address_fetcher/mechanize_patch.rb

Instance Method Summary collapse

Instance Method Details

#to_absolute_uri(url, cur_page = current_page()) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/address_fetcher/mechanize_patch.rb', line 4

def to_absolute_uri(url, cur_page=current_page())
  unless url.is_a? URI
    url = url.to_s.strip
    url = URI.parse(self.class.html_unescape(SyncEnumerator.new(url.split(/%[0-9A-Fa-f]{2}/), url.scan(/%[0-9A-Fa-f]{2}/)).map { |x,y| "#{ URI.escape(x||'')}#{y}" }.join('').gsub(/%23/, '#')))
  end

  if url.relative?
    raise 'no history. please specify an absolute URL' unless cur_page.uri
    url = cur_page.uri + url
    url.path.sub!(/^(\/\.\.)+(?=\/)/, '')
  end

  return url
end