Sha256: 24ad34fa41e801ef757aef76947892d171e5dec83f53e78592a5fab82272990a

Contents?: true

Size: 1.36 KB

Versions: 7

Compression:

Stored size: 1.36 KB

Contents

module WWW
  class Mechanize
    class Page < WWW::Mechanize::File
      # 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
        attr_reader :page
        alias :to_s :text
        alias :referer :page
      
        def initialize(node, mech, page)
          @node = node
          @href = node['href'] 
          @text = node.inner_text
          @page = page
          @mech = mech
          @attributes = node

          # 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|
              @text << ( e['alt'] || '')
            end
          end

        end

        def uri
          URI.parse(@href)
        end

        # Click on this link
        def click
          @mech.click self
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mechanize-0.7.6 lib/www/mechanize/page/link.rb
mechanize-0.7.3 lib/www/mechanize/page/link.rb
mechanize-0.7.2 lib/www/mechanize/page/link.rb
mechanize-0.7.4 lib/www/mechanize/page/link.rb
mechanize-0.7.0 lib/www/mechanize/page/link.rb
mechanize-0.7.1 lib/www/mechanize/page/link.rb
mechanize-0.7.5 lib/www/mechanize/page/link.rb