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
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