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