class NeedfulThings::Engine
Public Instance Methods
register(name:, otherwise:)
click to toggle source
# File lib/needful_things/engine.rb, line 9 def register(name:, otherwise:) requirements[name] = otherwise end
verify(input = {}, &block)
click to toggle source
# File lib/needful_things/engine.rb, line 13 def verify(input = {}, &block) Matcher.( Maybe(find_unmet(input)).fmap {|need| reason(need)}.to_result.flip, &block ) end
Private Instance Methods
find_unmet(input = {})
click to toggle source
# File lib/needful_things/engine.rb, line 25 def find_unmet(input = {}) needs.reject {|need| Try {input.fetch(need)}.value_or(nil)}.first end
needs()
click to toggle source
# File lib/needful_things/engine.rb, line 29 def needs requirements.keys end
reason(need)
click to toggle source
# File lib/needful_things/engine.rb, line 33 def reason(need) requirements.fetch(need) end
requirements()
click to toggle source
# File lib/needful_things/engine.rb, line 21 def requirements @requirements ||= {} end