Module Hpricot::Doc::Trav
In: lib/hpricot/modules.rb
lib/hpricot/traverse.rb
lib/hpricot/modules.rb
lib/hpricot/traverse.rb

Methods

author   author   root   root   title   title  

Included Modules

Container::Trav Container::Trav

Public Instance methods

author searches author and return it as a text. It returns nil if not found.

author searchs following information.

  • <meta name="author" content="author-name"> in HTML
  • <link rev="made" title="author-name"> in HTML
  • <dc:creator>author-name</dc:creator> in RSS
  • <dc:publisher>author-name</dc:publisher> in RSS

[Source]

# File lib/hpricot/traverse.rb, line 743
    def author
      traverse_element('meta',
        '{http://www.w3.org/1999/xhtml}meta') {|e|
        begin
          next unless e.fetch_attr('name').downcase == 'author'
          author = e.fetch_attribute('content').strip
          return author if !author.empty?
        rescue IndexError
        end
      }

      traverse_element('link',
        '{http://www.w3.org/1999/xhtml}link') {|e|
        begin
          next unless e.fetch_attr('rev').downcase == 'made'
          author = e.fetch_attribute('title').strip
          return author if !author.empty?
        rescue IndexError
        end
      } 

      if channel = find_element('{http://purl.org/rss/1.0/}channel')
        channel.traverse_element('{http://purl.org/dc/elements/1.1/}creator') {|e|
          begin
            author = e.extract_text.strip
            return author if !author.empty?
          rescue IndexError
          end
        }
        channel.traverse_element('{http://purl.org/dc/elements/1.1/}publisher') {|e|
          begin
            author = e.extract_text.strip
            return author if !author.empty?
          rescue IndexError
          end
        }
      end

      nil
    end

author searches author and return it as a text. It returns nil if not found.

author searchs following information.

  • <meta name="author" content="author-name"> in HTML
  • <link rev="made" title="author-name"> in HTML
  • <dc:creator>author-name</dc:creator> in RSS
  • <dc:publisher>author-name</dc:publisher> in RSS

[Source]

# File lib/hpricot/traverse.rb, line 743
    def author
      traverse_element('meta',
        '{http://www.w3.org/1999/xhtml}meta') {|e|
        begin
          next unless e.fetch_attr('name').downcase == 'author'
          author = e.fetch_attribute('content').strip
          return author if !author.empty?
        rescue IndexError
        end
      }

      traverse_element('link',
        '{http://www.w3.org/1999/xhtml}link') {|e|
        begin
          next unless e.fetch_attr('rev').downcase == 'made'
          author = e.fetch_attribute('title').strip
          return author if !author.empty?
        rescue IndexError
        end
      } 

      if channel = find_element('{http://purl.org/rss/1.0/}channel')
        channel.traverse_element('{http://purl.org/dc/elements/1.1/}creator') {|e|
          begin
            author = e.extract_text.strip
            return author if !author.empty?
          rescue IndexError
          end
        }
        channel.traverse_element('{http://purl.org/dc/elements/1.1/}publisher') {|e|
          begin
            author = e.extract_text.strip
            return author if !author.empty?
          rescue IndexError
          end
        }
      end

      nil
    end

[Source]

# File lib/hpricot/traverse.rb, line 787
    def root
      es = []
      children.each {|c| es << c if c.elem? }
      raise Hpricot::Error, "no element" if es.empty?
      raise Hpricot::Error, "multiple top elements" if 1 < es.length
      es[0]
    end

[Source]

# File lib/hpricot/traverse.rb, line 787
    def root
      es = []
      children.each {|c| es << c if c.elem? }
      raise Hpricot::Error, "no element" if es.empty?
      raise Hpricot::Error, "multiple top elements" if 1 < es.length
      es[0]
    end

title searches title and return it as a text. It returns nil if not found.

title searchs following information.

[Source]

# File lib/hpricot/traverse.rb, line 726
    def title
      e = find_element('title',
        '{http://www.w3.org/1999/xhtml}title',
        '{http://purl.org/rss/1.0/}title',
        '{http://my.netscape.com/rdf/simple/0.9/}title')
      e && e.extract_text
    end

title searches title and return it as a text. It returns nil if not found.

title searchs following information.

[Source]

# File lib/hpricot/traverse.rb, line 726
    def title
      e = find_element('title',
        '{http://www.w3.org/1999/xhtml}title',
        '{http://purl.org/rss/1.0/}title',
        '{http://my.netscape.com/rdf/simple/0.9/}title')
      e && e.extract_text
    end

[Validate]