Class: Pincers::CSS::XPathVisitor

Inherits:
Nokogiri::CSS::XPathVisitor
  • Object
show all
Defined in:
lib/pincers/css/xpath_visitor.rb

Instance Method Summary collapse

Instance Method Details

#visit_function_contains(_node) ⇒ Object

jQuery extended functions and classes



7
8
9
# File 'lib/pincers/css/xpath_visitor.rb', line 7

def visit_function_contains(_node) # override nokofiri impl to search in value attribute too
  "(contains(., #{_node.value[1]}) or contains(@value, #{_node.value[1]}))"
end

#visit_function_eq(_node) ⇒ Object

override nokogiri impl to make it zero-based



15
16
17
# File 'lib/pincers/css/xpath_visitor.rb', line 15

def visit_function_eq(_node) # override nokogiri impl to make it zero-based
  "(position()-1)=#{_node.value[1]}"
end

#visit_function_gt(_node) ⇒ Object

override nokogiri impl to make it zero-based



19
20
21
22
# File 'lib/pincers/css/xpath_visitor.rb', line 19

def visit_function_gt(_node) # override nokogiri impl to make it zero-based
  # "((#{_node.value[1]} >= 0 and position() > #{_node.value[1]}) or (#{_node.value[1]} < 0 and position() < #{_node.value[1]}))"
  "(position()-1)>#{_node.value[1]}"
end

#visit_function_has(_node) ⇒ Object



11
12
13
# File 'lib/pincers/css/xpath_visitor.rb', line 11

def visit_function_has(_node)
  _node.value[1].accept(self)
end

#visit_function_lt(_node) ⇒ Object



24
25
26
# File 'lib/pincers/css/xpath_visitor.rb', line 24

def visit_function_lt(_node)
  "(position()-1)<#{_node.value[1]}"
end

#visit_pseudo_class_button(_node) ⇒ Object



32
33
34
# File 'lib/pincers/css/xpath_visitor.rb', line 32

def visit_pseudo_class_button(_node)
  "(name()='button' or (name()='input' and @type='button'))"
end

#visit_pseudo_class_checkbox(_node) ⇒ Object



36
37
38
# File 'lib/pincers/css/xpath_visitor.rb', line 36

def visit_pseudo_class_checkbox(_node)
  "@type='checkbox'"
end

#visit_pseudo_class_checked(_node) ⇒ Object



68
69
70
# File 'lib/pincers/css/xpath_visitor.rb', line 68

def visit_pseudo_class_checked(_node)
  "@checked"
end

#visit_pseudo_class_even(_node) ⇒ Object



76
77
78
# File 'lib/pincers/css/xpath_visitor.rb', line 76

def visit_pseudo_class_even(_node)
  "position() mod 2 = 0"
end

#visit_pseudo_class_file(_node) ⇒ Object



40
41
42
# File 'lib/pincers/css/xpath_visitor.rb', line 40

def visit_pseudo_class_file(_node)
  "@type='file'"
end

#visit_pseudo_class_image(_node) ⇒ Object



44
45
46
# File 'lib/pincers/css/xpath_visitor.rb', line 44

def visit_pseudo_class_image(_node)
  "@type='image'"
end

#visit_pseudo_class_input(_node) ⇒ Object



28
29
30
# File 'lib/pincers/css/xpath_visitor.rb', line 28

def visit_pseudo_class_input(_node)
  "((name()='input' and not(@type='hidden')) or name()='textarea' or name()='select' or name()='button')"
end

#visit_pseudo_class_odd(_node) ⇒ Object



72
73
74
# File 'lib/pincers/css/xpath_visitor.rb', line 72

def visit_pseudo_class_odd(_node)
  "position() mod 2 = 1"
end

#visit_pseudo_class_password(_node) ⇒ Object



48
49
50
# File 'lib/pincers/css/xpath_visitor.rb', line 48

def visit_pseudo_class_password(_node)
  "@type='password'"
end

#visit_pseudo_class_radio(_node) ⇒ Object



52
53
54
# File 'lib/pincers/css/xpath_visitor.rb', line 52

def visit_pseudo_class_radio(_node)
  "@type='radio'"
end

#visit_pseudo_class_reset(_node) ⇒ Object



56
57
58
# File 'lib/pincers/css/xpath_visitor.rb', line 56

def visit_pseudo_class_reset(_node)
  "@type='reset'"
end

#visit_pseudo_class_selected(_node) ⇒ Object



64
65
66
# File 'lib/pincers/css/xpath_visitor.rb', line 64

def visit_pseudo_class_selected(_node)
  "@selected"
end

#visit_pseudo_class_text(_node) ⇒ Object



60
61
62
# File 'lib/pincers/css/xpath_visitor.rb', line 60

def visit_pseudo_class_text(_node)
  "@type='text'"
end