Sha256: d6b669c8360b81b8ede9e5bbf92c20df2156ae74ed6e41d360c3330d89f3407e

Contents?: true

Size: 1.57 KB

Versions: 15

Compression:

Stored size: 1.57 KB

Contents

require "cgi"

module Fletcher
  # This contains helper methods for Nokogiri interactions
  module Nokogiri
    module HTML
      module Document
         
      end # Document
    end # HTML
    
    module XML
      module NodeSet
        # get string from first nodeset model
        def first_string
          node = first
          case node
          # xml/html element?
          when ::Nokogiri::XML::Element 
            return node.content.sanitize
          # xml/html attribute?
          when ::Nokogiri::XML::Attr
            return node.value.sanitize
          end
        end          
        
        # convert nodeset models to an array of hashes
        #   @doc.xpath("//img")).attribute_array # => [{:element => "img", :src => ".../someimage.png"}]
        def attribute_array
          a = Array.new
          each do |node|
            temp_hash = Hash.new 
            case node 
            when ::Nokogiri::XML::Element
              temp_hash[:element] = node.name
              node.attributes.each do |key, value|
                case value
                when ::Nokogiri::XML::Attr
                  temp_hash[key.to_sym] = value.value.sanitize
                end 
              end
            end 
            a << temp_hash            
          end
          return a          
        end 
      end # Nodeset
    end # XML 
  end # Nokogiri 
end # Fletcher

::Nokogiri::HTML::Document.send(:include, ::Fletcher::Nokogiri::HTML::Document)
::Nokogiri::XML::NodeSet.send(:include, ::Fletcher::Nokogiri::XML::NodeSet)  

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
fletcher-0.6.9 lib/fletcher/nokogiri.rb
fletcher-0.6.8 lib/fletcher/nokogiri.rb
fletcher-0.6.7 lib/fletcher/nokogiri.rb
fletcher-0.6.6 lib/fletcher/nokogiri.rb
fletcher-0.6.5 lib/fletcher/nokogiri.rb
fletcher-0.6.4 lib/fletcher/nokogiri.rb
fletcher-0.6.2 lib/fletcher/nokogiri.rb
fletcher-0.6.1 lib/fletcher/nokogiri.rb
fletcher-0.6.0 lib/fletcher/nokogiri.rb
fletcher-0.5.2 lib/fletcher/nokogiri.rb
fletcher-0.5.1 lib/fletcher/nokogiri.rb
fletcher-0.5.0 lib/fletcher/nokogiri.rb
fletcher-0.4.2 lib/fletcher/nokogiri.rb
fletcher-0.4.1 lib/fletcher/nokogiri.rb
fletcher-0.4.0 lib/fletcher/nokogiri.rb