class Contract
INVALID = Object.new.freeze
COERCERS = {
string: ->(v) { v.is_a?(String) ? v : v.to_s },
integer: ->(v) { Integer(v.to_s) rescue INVALID },
class DynamicFinder
def initialize(records)
@records = records
end
def method_missing(method_name, *args, &block)