class Mechanize::Page::Link

Attributes

attributes[R]
href[R]
node[R]
page[R]
referer[R]

Public Class Methods

new(node, mech, page) click to toggle source
# File lib/mechanize/page/link.rb, line 21
def initialize(node, mech, page)
  @node       = node
  @attributes = node
  @href       = node['href']
  @mech       = mech
  @page       = page
  @text       = nil
  @uri        = nil
end

Public Instance Methods

click() click to toggle source

Click on this link

# File lib/mechanize/page/link.rb, line 32
def click
  @mech.click self
end
dom_class() click to toggle source

This method is a shorthand to get a link’s DOM class Common usage:

page.link_with(:dom_class => "links_exact_class")
# File lib/mechanize/page/link.rb, line 46
def dom_class
  node['class']
end
dom_id() click to toggle source

This method is a shorthand to get link’s DOM id. Common usage:

page.link_with(:dom_id => "links_exact_id")
# File lib/mechanize/page/link.rb, line 39
def dom_id
  node['id']
end
noreferrer?() click to toggle source

Test if this link should not be traced.

# File lib/mechanize/page/link.rb, line 70
def noreferrer?
  rel?('noreferrer')
end
rel() click to toggle source

A list of words in the rel attribute, all lower-cased.

# File lib/mechanize/page/link.rb, line 60
def rel
  @rel ||= (val = attributes['rel']) ? val.downcase.split(' ') : []
end
rel?(kind) click to toggle source

Test if the rel attribute includes kind.

# File lib/mechanize/page/link.rb, line 65
def rel? kind
  rel.include? kind
end
resolved_uri() click to toggle source

A fully resolved URI for the href for this link.

# File lib/mechanize/page/link.rb, line 110
def resolved_uri
  @mech.resolve uri
end
text() click to toggle source

The text content of this link

# File lib/mechanize/page/link.rb, line 75
def text
  return @text if @text

  @text = @node.inner_text

  # If there is no text, try to find an image and use it's alt text
  if (@text.nil? or @text.empty?) and imgs = @node.search('img') then
    @text = imgs.map do |e|
      e['alt']
    end.join
  end

  @text
end
Also aliased as: to_s
to_s()
Alias for: text
uri() click to toggle source

A URI for the href for this link. The link is first parsed as a raw link. If that fails parsing an escaped link is attepmted.

# File lib/mechanize/page/link.rb, line 95
def uri
  @uri ||= if @href then
             begin
               URI.parse @href
             rescue URI::InvalidURIError
               begin
                 URI.parse(Addressable::URI.escape(@href))
               rescue Addressable::URI::InvalidURIError
                 raise URI::InvalidURIError
               end
             end
           end
end