Sha256: 525f47655714ffb7998a4f58715650371d9d7ac77daa88a34da364806a84ef9e

Contents?: true

Size: 1.38 KB

Versions: 7

Compression:

Stored size: 1.38 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.search('//img').length > 0
            @text = ''
            node.search('//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.8.0 lib/www/mechanize/page/link.rb
mechanize-0.7.7 lib/www/mechanize/page/link.rb
mechanize-0.7.8 lib/www/mechanize/page/link.rb
mechanize-0.8.4 lib/www/mechanize/page/link.rb
mechanize-0.8.1 lib/www/mechanize/page/link.rb
mechanize-0.8.2 lib/www/mechanize/page/link.rb
mechanize-0.8.3 lib/www/mechanize/page/link.rb