Sha256: 31d70290b29a4fc76507ed341d04c1af2f4d045f791b75a2ec5275aa0e7bdd45
Contents?: true
Size: 1.88 KB
Versions: 4
Compression:
Stored size: 1.88 KB
Contents
## # This class encapsulates links. It contains the text and the URI for # 'a' tags parsed out of an HTML page. If the link contains an image, # the alt text will be used for that image. # # For example, the text for the following links with both be 'Hello World': # # <a href="http://example">Hello World</a> # <a href="http://example"><img src="test.jpg" alt="Hello World"></a> class Mechanize::Page::Link attr_reader :node attr_reader :href attr_reader :attributes attr_reader :page alias :referer :page def initialize(node, mech, page) @node = node @attributes = node @href = node['href'] @mech = mech @page = page @text = nil @uri = nil end # Click on this link def click @mech.click self end # This method is a shorthand to get link's DOM id. # Common usage: # page.link_with(:dom_id => "links_exact_id") def dom_id node['id'] end # A list of words in the rel attribute, all lower-cased. def rel @rel ||= (val = attributes['rel']) ? val.downcase.split(' ') : [] end # Test if the rel attribute includes +kind+. def rel? kind rel.include? kind end # The text content of this link 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 alias :to_s :text # 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. def uri @uri ||= if @href then begin URI.parse @href rescue URI::InvalidURIError URI.parse WEBrick::HTTPUtils.escape @href end end end end
Version data entries
4 entries across 4 versions & 3 rubygems
Version | Path |
---|---|
aai10-mechanize-2.0.1.0 | lib/mechanize/page/link.rb |
neocoin-mechanize-2.0.2 | lib/mechanize/page/link.rb |
mechanize-2.0.1 | lib/mechanize/page/link.rb |
mechanize-2.0 | lib/mechanize/page/link.rb |