Class: PrismChecker::ItemClassifier

Inherits:
Object
  • Object
show all
Defined in:
lib/prism_checker/item_classifier.rb

Class Method Summary collapse

Class Method Details

.add(type, probe, position = 0) ⇒ Object



122
123
124
# File 'lib/prism_checker/item_classifier.rb', line 122

def self.add(type, probe, position = 0)
  @elements_map.insert(position, [type, probe])
end

.array?(element) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/prism_checker/item_classifier.rb', line 61

def self.array?(element)
  element.is_a?(::Array)
end

.boolean?(element) ⇒ Boolean

Returns:

  • (Boolean)


111
112
113
114
115
116
# File 'lib/prism_checker/item_classifier.rb', line 111

def self.boolean?(element)
  return true if element.is_a?(TrueClass)
  return true if element.is_a?(FalseClass)

  false
end

.classify(element) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/prism_checker/item_classifier.rb', line 23

def self.classify(element)
  @elements_map.each do |data|
    type = data[0]
    probe = data[1]
    if probe.is_a? Symbol
      return type if send(probe, element)
    elsif probe.call(element)
      return type
    end
  end

  :other
end

.element?(element) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/prism_checker/item_classifier.rb', line 51

def self.element?(element)
  element.is_a?(Capybara::Node::Element)
end

.element_checkbox?(element) ⇒ Boolean

Returns:

  • (Boolean)


97
98
99
100
101
102
# File 'lib/prism_checker/item_classifier.rb', line 97

def self.element_checkbox?(element)
  return false unless element?(element)
  return false unless element['type'] == 'checkbox'

  true
end

.element_image?(element) ⇒ Boolean

Returns:

  • (Boolean)


69
70
71
72
73
74
# File 'lib/prism_checker/item_classifier.rb', line 69

def self.element_image?(element)
  return false unless element?(element)
  return false unless element.tag_name == 'img'

  true
end

.element_input?(element) ⇒ Boolean

Returns:

  • (Boolean)


76
77
78
79
80
81
# File 'lib/prism_checker/item_classifier.rb', line 76

def self.element_input?(element)
  return false unless element?(element)
  return false unless element.tag_name == 'input'

  true
end

.element_nil?(element) ⇒ Boolean

Returns:

  • (Boolean)


118
119
120
# File 'lib/prism_checker/item_classifier.rb', line 118

def self.element_nil?(element)
  element.nil?
end

.element_radio?(element) ⇒ Boolean

Returns:

  • (Boolean)


104
105
106
107
108
109
# File 'lib/prism_checker/item_classifier.rb', line 104

def self.element_radio?(element)
  return false unless element?(element)
  return false unless element['type'] == 'radio'

  true
end

.element_select?(element) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
93
94
95
# File 'lib/prism_checker/item_classifier.rb', line 90

def self.element_select?(element)
  return false unless element?(element)
  return false unless element.tag_name == 'select'

  true
end

.element_textarea?(element) ⇒ Boolean

Returns:

  • (Boolean)


83
84
85
86
87
88
# File 'lib/prism_checker/item_classifier.rb', line 83

def self.element_textarea?(element)
  return false unless element?(element)
  return false unless element.tag_name == 'textarea'

  true
end

.elements?(element) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
58
59
# File 'lib/prism_checker/item_classifier.rb', line 55

def self.elements?(element)
  element.all?(Capybara::Node::Element)
rescue StandardError
  false
end

.page?(element) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/prism_checker/item_classifier.rb', line 37

def self.page?(element)
  element.is_a?(SitePrism::Page)
end

.section?(element) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/prism_checker/item_classifier.rb', line 41

def self.section?(element)
  element.is_a?(SitePrism::Section)
end

.sections?(element) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
48
49
# File 'lib/prism_checker/item_classifier.rb', line 45

def self.sections?(element)
  element.all?(SitePrism::Section)
rescue StandardError
  false
end

.string?(element) ⇒ Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/prism_checker/item_classifier.rb', line 65

def self.string?(element)
  element.is_a?(::String)
end