Sha256: a6fca511f3e586fcd3a179cad356958be962954625f919cbed86b4d26643784b

Contents?: true

Size: 1.33 KB

Versions: 19

Compression:

Stored size: 1.33 KB

Contents

module Nokogiri
  module Decorators
    module Hpricot
      module Node # :nodoc:
        def search *paths
          ns = paths.last.is_a?(Hash) ? paths.pop : {}
          converted = paths.map { |path|
            convert_to_xpath(path)
          }.flatten.uniq

          super(*converted + [ns])
        end
        def /(path); search(path) end

        def xpath *args
          return super if args.length > 0
          path
        end

        def raw_attributes; self end

        def get_element_by_id element_id
          search("//*[@id='#{element_id}']").first
        end

        def get_elements_by_tag_name tag
          search("//#{tag}")
        end

        def convert_to_xpath(rule)
          rule = rule.to_s
          case rule
          when %r{^//}
            [".#{Hpricot::XPathVisitor.xpath_namespace_helper(rule)}"]
          when %r{^/}
            [Hpricot::XPathVisitor.xpath_namespace_helper(rule)]
          when %r{^.//}
            [Hpricot::XPathVisitor.xpath_namespace_helper(rule)]
          else
            visitor = CSS::XPathVisitor.new
            visitor.extend(Hpricot::XPathVisitor)
            CSS.xpath_for(rule, :prefix => ".//", :visitor => visitor)
          end
        end

        def target
          name
        end

        def to_original_html
          to_html
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
akamai_bookmarklet-0.1.2 vendor/gems/ruby/1.8/gems/nokogiri-1.3.3/lib/nokogiri/decorators/hpricot/node.rb
akamai_bookmarklet-0.1.1 vendor/gems/ruby/1.8/gems/nokogiri-1.3.3/lib/nokogiri/decorators/hpricot/node.rb
akamai_bookmarklet-0.1.0 vendor/gems/ruby/1.8/gems/nokogiri-1.3.3/lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.3-x86-mswin32 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.3-x86-mingw32 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.3-java lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.2-x86-mswin32 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.2-x86-mingw32 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.2-java lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.0-x86-mingw32 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.2 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.3 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.0-java lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.1-java lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.0-x86-mswin32 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.1-x86-mingw32 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.0 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.1-x86-mswin32 lib/nokogiri/decorators/hpricot/node.rb
nokogiri-1.3.1 lib/nokogiri/decorators/hpricot/node.rb