Sha256: 82038c24c04768d0d5ebfe95435cf6ae4d47ebdbbb0aa1f1a0f3184183295f8d
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
module WWW class Mechanize # 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://rubyforge.org">Hello World</a> # <a href="http://rubyforge.org"><img src="test.jpg" alt="Hello World"></a> class Link attr_reader :node attr_reader :href attr_reader :text attr_reader :attributes alias :to_s :text def initialize(node) node.attributes ||= {} @node = node @href = node.attributes['href'] @text = node.all_text @attributes = node.attributes # If there is no text, try to find an image and use it's alt text if (@text.nil? || @text.length == 0) && (node/'img').length > 0 @text = '' (node/'img').each do |e| e.attributes ||= {} @text << (e.attributes.has_key?('alt') ? e.attributes['alt'] : '') end end end def uri URI.parse(@href) end end # This class encapsulates a Meta tag. Mechanize treats meta tags just # like 'a' tags. Meta objects will contain links, but most likely will # have no text. class Meta < Link end # This class encapsulates a 'frame' tag. Frame objects can be treated # just like Link objects. They contain src, the link they refer to, # name, the name of the frame. 'src' and 'name' are aliased to 'href' # and 'text' respectively so that a Frame object can be treated just # like a Link. class Frame < Link alias :src :href alias :name :text def initialize(node) node.attributes ||= {} @node = node @text = node.attributes['name'] @href = node.attributes['src'] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mechanize-0.6.0 | lib/mechanize/page_elements.rb |