Module: NRSER::NicerError::ClassMethods

Defined in:
lib/nrser/errors/nicer_error.rb

Instance Method Summary collapse

Instance Method Details

#def_context_delegator(keys:, presence_predicate: true) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/nrser/errors/nicer_error.rb', line 51

def def_context_delegator keys:, presence_predicate: true
  keys = Array keys

  keys.each do |key|
    define_method key do
      if (found_key = keys.find { |k| context.key? k })
        context[found_key]
      end
    end

    if presence_predicate
      define_method "#{ key }?" do
        !!keys.find { |k| context.key? k }
      end
    end
  end
end