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



124
125
126
# File 'lib/prism_checker/item_classifier.rb', line 124

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

.array?(element) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/prism_checker/item_classifier.rb', line 63

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

.boolean?(element) ⇒ Boolean

Returns:

  • (Boolean)


113
114
115
116
117
118
# File 'lib/prism_checker/item_classifier.rb', line 113

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

  false
end

.classify(element) ⇒ Object



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

def self.classify(element)
  @elements_map.each do |data|
    type, probe = data
    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)


53
54
55
# File 'lib/prism_checker/item_classifier.rb', line 53

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

.element_checkbox?(element) ⇒ Boolean

Returns:

  • (Boolean)


99
100
101
102
103
104
# File 'lib/prism_checker/item_classifier.rb', line 99

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

  true
end

.element_image?(element) ⇒ Boolean

Returns:

  • (Boolean)


71
72
73
74
75
76
# File 'lib/prism_checker/item_classifier.rb', line 71

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)


78
79
80
81
82
83
# File 'lib/prism_checker/item_classifier.rb', line 78

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)


120
121
122
# File 'lib/prism_checker/item_classifier.rb', line 120

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

.element_radio?(element) ⇒ Boolean

Returns:

  • (Boolean)


106
107
108
109
110
111
# File 'lib/prism_checker/item_classifier.rb', line 106

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

  true
end

.element_select?(element) ⇒ Boolean

Returns:

  • (Boolean)


92
93
94
95
96
97
# File 'lib/prism_checker/item_classifier.rb', line 92

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)


85
86
87
88
89
90
# File 'lib/prism_checker/item_classifier.rb', line 85

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

  true
end

.elements?(element) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
60
61
# File 'lib/prism_checker/item_classifier.rb', line 57

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

.page?(element) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/prism_checker/item_classifier.rb', line 39

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

.section?(element) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/prism_checker/item_classifier.rb', line 43

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

.sections?(element) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
50
51
# File 'lib/prism_checker/item_classifier.rb', line 47

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

.string?(element) ⇒ Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/prism_checker/item_classifier.rb', line 67

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