Sha256: 957b64b04bc3bc33f1b9724bf9e4e382c4a8b5862a382c2a4ef77129eb54d5e6

Contents?: true

Size: 1.19 KB

Versions: 280

Compression:

Stored size: 1.19 KB

Contents

module Nokogiri
  module Decorators
    ###
    # The Slop decorator implements method missing such that a methods may be
    # used instead of XPath or CSS.  See Nokogiri.Slop
    module Slop
      # The default XPath search context for Slop
      XPATH_PREFIX = "./"

      ###
      # look for node with +name+.  See Nokogiri.Slop
      def method_missing name, *args, &block
        if args.empty?
          list = xpath("#{XPATH_PREFIX}#{name.to_s.sub(/^_/, '')}")
        elsif args.first.is_a? Hash
          hash = args.first
          if hash[:css]
            list = css("#{name}#{hash[:css]}")
          elsif hash[:xpath]
            conds = Array(hash[:xpath]).join(' and ')
            list = xpath("#{XPATH_PREFIX}#{name}[#{conds}]")
          end
        else
          CSS::Parser.without_cache do
            list = xpath(
              *CSS.xpath_for("#{name}#{args.first}", :prefix => XPATH_PREFIX)
            )
          end
        end

        super if list.empty?
        list.length == 1 ? list.first : list
      end

      def respond_to_missing? name, include_private = false
        list = xpath("#{XPATH_PREFIX}#{name.to_s.sub(/^_/, '')}")

        !list.empty?
      end
    end
  end
end

Version data entries

280 entries across 251 versions & 25 rubygems

Version Path
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/tdiary-5.1.4/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.10.10/lib/nokogiri/decorators/slop.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/nokogiri-1.10.10/lib/nokogiri/decorators/slop.rb
tdiary-5.1.5 vendor/bundle/ruby/3.0.0/gems/nokogiri-1.10.10/lib/nokogiri/decorators/slop.rb
tdiary-5.1.5 vendor/bundle/ruby/3.0.0/gems/tdiary-5.1.4/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.10.10/lib/nokogiri/decorators/slop.rb
video_chat_get-0.1.9 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
tdiary-5.1.4 vendor/bundle/ruby/2.7.0/gems/nokogiri-1.10.10/lib/nokogiri/decorators/slop.rb
video_chat_get-0.1.6 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
tdiary-5.1.3 vendor/bundle/ruby/2.6.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
tdiary-5.1.3 vendor/bundle/ruby/2.7.0/gems/nokogiri-1.10.10/lib/nokogiri/decorators/slop.rb
video_chat_get-0.1.5 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop 2.rb
video_chat_get-0.1.5 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
video_chat_get-0.1.5 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop 3.rb
video_chat_get-0.1.4 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/nokogiri-1.10.10/lib/nokogiri/decorators/slop.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/nokogiri-1.10.10/lib/nokogiri/decorators/slop.rb
video_chat_get-0.1.3 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
video_chat_get-0.1.2 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
video_chat_get-0.1.1 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
video_chat_get-0.1.0 vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop.rb
nokogiri-1.10.10 lib/nokogiri/decorators/slop.rb