Module: Yahm::HashMapper

Defined in:
lib/yahm/hash_mapper.rb

Instance Method Summary collapse

Instance Method Details

#define_mapper(mapper_method_name, options = {}, &block) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/yahm/hash_mapper.rb', line 2

def define_mapper(mapper_method_name, options = {}, &block)
  mapping = Yahm::Mapping.new(&block)

  define_method mapper_method_name do |hash|
    translated_hash = mapping.translate_hash(hash, _self: self)
    unless (setter_name = options[:call_setter]).nil?
      self.send(setter_name, translated_hash)
    end

    translated_hash
  end

  if options[:private]
    private mapper_method_name.to_sym
  end

  self
end