Class: HashMapper::Map

Inherits:
Object
  • Object
show all
Defined in:
lib/hash_mapper.rb

Overview

Contains PathMaps Makes them interact

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path_from, path_to, options = {}) ⇒ Map

Returns a new instance of Map.



137
138
139
140
141
142
# File 'lib/hash_mapper.rb', line 137

def initialize(path_from, path_to, options = {})
  @path_from = path_from
  @path_to = path_to
  @delegated_mapper = options.fetch(:using, nil)
  @default_value = options.fetch(:default, NO_DEFAULT)
end

Instance Attribute Details

#default_valueObject (readonly)

Returns the value of attribute default_value.



135
136
137
# File 'lib/hash_mapper.rb', line 135

def default_value
  @default_value
end

#delegated_mapperObject (readonly)

Returns the value of attribute delegated_mapper.



135
136
137
# File 'lib/hash_mapper.rb', line 135

def delegated_mapper
  @delegated_mapper
end

#path_fromObject (readonly)

Returns the value of attribute path_from.



135
136
137
# File 'lib/hash_mapper.rb', line 135

def path_from
  @path_from
end

#path_toObject (readonly)

Returns the value of attribute path_to.



135
136
137
# File 'lib/hash_mapper.rb', line 135

def path_to
  @path_to
end

Instance Method Details

#process_into(output, input, method_name: :normalize, context: nil) ⇒ Object



144
145
146
147
148
# File 'lib/hash_mapper.rb', line 144

def process_into(output, input, method_name: :normalize, context: nil)
  path_1, path_2 = (method_name == :normalize ? [path_from, path_to] : [path_to, path_from])
  value = get_value_from_input(output, input, path_1, method_name: method_name, context: context)
  set_value_in_output(output, path_2, value, context: context)
end