class SitePrism::RecursionChecker

Attributes

instance[R]

Public Class Methods

new(instance) click to toggle source
# File lib/site_prism/recursion_checker.rb, line 9
def initialize(instance)
  @instance = instance
end

Public Instance Methods

all_there?() click to toggle source
# File lib/site_prism/recursion_checker.rb, line 13
def all_there?
  regular_items_all_there = expected_item_map.flatten.all? { |name| there?(name) }
  return false unless regular_items_all_there

  section_all_there =
    section_classes_to_check.all?(&:all_there?)
  return false unless section_all_there

  # Returning this final check here is fine, as the previous two checks must
  # have returned +true+ in order to hit this part of the method-call
  sections_classes_to_check.all?(&:all_there?)
end
expected(_map, type) click to toggle source
# File lib/site_prism/recursion_checker.rb, line 36
def expected(_map, type)
  mapped_items[type].select { |name| elements_to_check.include?(name) }
end
expected_item_map() click to toggle source
# File lib/site_prism/recursion_checker.rb, line 26
def expected_item_map
  [
    expected(mapped_items, :element),
    expected(mapped_items, :elements),
    expected(mapped_items, :section),
    expected(mapped_items, :sections),
    expected(mapped_items, :iframe)
  ]
end
section_classes_to_check() click to toggle source
# File lib/site_prism/recursion_checker.rb, line 40
def section_classes_to_check
  expected_item_map[2].map { |name| instance.send(name) }
end
sections_classes_to_check() click to toggle source
# File lib/site_prism/recursion_checker.rb, line 44
def sections_classes_to_check
  expected_item_map[3].map { |name| instance.send(name) }.flatten
end

Private Instance Methods

_expected_items() click to toggle source
# File lib/site_prism/recursion_checker.rb, line 65
def _expected_items
  instance.class.expected_items
end
_mapped_items() click to toggle source
# File lib/site_prism/recursion_checker.rb, line 61
def _mapped_items
  mapped_items.values.flatten.uniq
end
elements_to_check() click to toggle source

If the page or section has expected_items set, return expected_items that are mapped otherwise just return the list of all mapped_items

# File lib/site_prism/recursion_checker.rb, line 52
def elements_to_check
  if _expected_items
    SitePrism.logger.debug('Expected Items has been set.')
    _mapped_items.select { |name| _expected_items.include?(name) }
  else
    _mapped_items
  end
end
mapped_items() click to toggle source
# File lib/site_prism/recursion_checker.rb, line 73
def mapped_items
  @mapped_items ||= instance.class.mapped_items(legacy: false)
end
there?(name) click to toggle source
# File lib/site_prism/recursion_checker.rb, line 69
def there?(name)
  instance.send("has_#{name}?")
end