/usr/lib/ruby/vendor_ruby/nokogiri/decorators/slop.rb is in ruby-nokogiri 1.6.7.2-3build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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
|