module KeyMapable

Constants

VERSION

Public Instance Methods

define_map(method_name, resolve: ->(val) { val } click to toggle source
# File lib/key_mapable.rb, line 8
def define_map(method_name,
               resolve: ->(val) { val },
               subject: :itself,
               access: :method, &block)
  define_method(method_name) do
    value = public_send(subject)
    accessor = Accessor.for(access)
    mapper = Mapper.new(value, accessor)
    mapper.instance_eval(&block)
    resolve.call(mapper.structure)
  end
end