module ForemanMaintain::Concerns::Finders
Public Instance Methods
check(label)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 12 def check(label) ensure_one_object(:check, label) end
detector()
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 4 def detector @detector ||= ForemanMaintain.detector end
feature(label)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 8 def feature(label) detector.feature(label) end
find_all_scenarios(conditions)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 28 def find_all_scenarios(conditions) detector.all_scenarios(conditions) end
find_procedures(conditions)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 20 def find_procedures(conditions) detector.available_procedures(conditions) end
find_scenarios(conditions)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 24 def find_scenarios(conditions) detector.available_scenarios(conditions) end
procedure(label)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 16 def procedure(label) ensure_one_object(:procedure, label) end
Private Instance Methods
ensure_one_object(object_type, label_or_class)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 34 def ensure_one_object(object_type, label_or_class) objects = find_objects(object_type, label_or_class) if objects.first.nil? raise "#{object_type} #{label_or_class} not present" elsif objects.size > 1 raise "Multiple objects of #{object_type} found for #{label_or_class}" else objects.first end end
find_objects(object_type, label_or_class)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 56 def find_objects(object_type, label_or_class) conditions = label_or_class_condition(label_or_class) case object_type when :procedure detector.available_procedures(conditions) when :check detector.available_checks(conditions) else raise "Unexpected object type #{object_type}" end end
label_or_class_condition(label_or_class)
click to toggle source
# File lib/foreman_maintain/concerns/finders.rb, line 45 def label_or_class_condition(label_or_class) case label_or_class when Symbol { :label => label_or_class } when Class { :class => label_or_class } else raise 'Expecting symbol or class' end end