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.



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

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.



131
132
133
# File 'lib/hash_mapper.rb', line 131

def default_value
  @default_value
end

#delegated_mapperObject (readonly)

Returns the value of attribute delegated_mapper.



131
132
133
# File 'lib/hash_mapper.rb', line 131

def delegated_mapper
  @delegated_mapper
end

#path_fromObject (readonly)

Returns the value of attribute path_from.



131
132
133
# File 'lib/hash_mapper.rb', line 131

def path_from
  @path_from
end

#path_toObject (readonly)

Returns the value of attribute path_to.



131
132
133
# File 'lib/hash_mapper.rb', line 131

def path_to
  @path_to
end

Instance Method Details

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



140
141
142
143
144
# File 'lib/hash_mapper.rb', line 140

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