Class: PrismChecker::ItemClassifier

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

Constant Summary collapse

ELEMENTS_MAP =
[
  %i[checkbox element_checkbox?],
  %i[radio element_radio?],
  %i[input element_input?],
  %i[textarea element_textarea?],
  %i[select element_select?],
  %i[image element_image?],
  %i[element element?],
  %i[elements elements?],
  %i[section section?],
  %i[sections sections?],
  %i[page page?],
  %i[array array?],
  %i[string string?],
  %i[boolean boolean?],
  %i[nil element_nil?]
].freeze

Class Method Summary collapse

Class Method Details

.array?(element) ⇒ Boolean

Returns:

  • (Boolean)


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

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

.boolean?(element) ⇒ Boolean

Returns:

  • (Boolean)


109
110
111
112
113
114
# File 'lib/prism_checker/item_classifier.rb', line 109

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
# File 'lib/prism_checker/item_classifier.rb', line 26

def self.classify(element)
  ELEMENTS_MAP.each do |data|
    type, probe = data
    return type if send(probe, element)
  end

  :other
end

.element?(element) ⇒ Boolean

Returns:

  • (Boolean)


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

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

.element_checkbox?(element) ⇒ Boolean

Returns:

  • (Boolean)


95
96
97
98
99
100
# File 'lib/prism_checker/item_classifier.rb', line 95

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

  true
end

.element_image?(element) ⇒ Boolean

Returns:

  • (Boolean)


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

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)


74
75
76
77
78
79
# File 'lib/prism_checker/item_classifier.rb', line 74

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)


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

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

.element_radio?(element) ⇒ Boolean

Returns:

  • (Boolean)


102
103
104
105
106
107
# File 'lib/prism_checker/item_classifier.rb', line 102

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

  true
end

.element_select?(element) ⇒ Boolean

Returns:

  • (Boolean)


88
89
90
91
92
93
# File 'lib/prism_checker/item_classifier.rb', line 88

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)


81
82
83
84
85
86
# File 'lib/prism_checker/item_classifier.rb', line 81

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

  true
end

.elements?(element) ⇒ Boolean

Returns:

  • (Boolean)


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

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

.page?(element) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/prism_checker/item_classifier.rb', line 35

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

.section?(element) ⇒ Boolean

Returns:

  • (Boolean)


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

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

.sections?(element) ⇒ Boolean

Returns:

  • (Boolean)


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

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

.string?(element) ⇒ Boolean

Returns:

  • (Boolean)


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

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