/usr/lib/ruby/vendor_ruby/nokogiri/css/node.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 43 44 45 46 47 48 49 50 51 52 | module Nokogiri
module CSS
class Node
ALLOW_COMBINATOR_ON_SELF = [:DIRECT_ADJACENT_SELECTOR, :FOLLOWING_SELECTOR, :CHILD_SELECTOR]
# Get the type of this node
attr_accessor :type
# Get the value of this node
attr_accessor :value
# Create a new Node with +type+ and +value+
def initialize type, value
@type = type
@value = value
end
# Accept +visitor+
def accept visitor
visitor.send(:"visit_#{type.to_s.downcase}", self)
end
###
# Convert this CSS node to xpath with +prefix+ using +visitor+
def to_xpath prefix = '//', visitor = XPathVisitor.new
prefix = '.' if ALLOW_COMBINATOR_ON_SELF.include?(type) && value.first.nil?
prefix + visitor.accept(self)
end
# Find a node by type using +types+
def find_by_type types
matches = []
matches << self if to_type == types
@value.each do |v|
matches += v.find_by_type(types) if v.respond_to?(:find_by_type)
end
matches
end
# Convert to_type
def to_type
[@type] + @value.map { |n|
n.to_type if n.respond_to?(:to_type)
}.compact
end
# Convert to array
def to_a
[@type] + @value.map { |n| n.respond_to?(:to_a) ? n.to_a : [n] }
end
end
end
end
|