Class: ParamsTransformer::ValueParser::HasMany

Inherits:
ParamsTransformer::ValueParser show all
Includes:
Relationship
Defined in:
lib/params_transformer/value_parser/has_many.rb

Instance Attribute Summary

Attributes included from Relationship

#transformer

Attributes inherited from ParamsTransformer::ValueParser

#input_value

Instance Method Summary collapse

Methods included from Relationship

#after_init

Methods inherited from ParamsTransformer::ValueParser

#after_init, #initialize

Constructor Details

This class inherits a constructor from ParamsTransformer::ValueParser

Instance Method Details

#parseObject

should return a pattern like… {

loads_attributes: {
  "0" => {
    pays_fuel_surcharge: true,
    pickup_datetime: #datetime_object
  }
}

}



15
16
17
18
19
# File 'lib/params_transformer/value_parser/has_many.rb', line 15

def parse
  return input_value unless input_value.present?
  parse_hash if input_value.is_a?(Hash)
  parse_array if input_value.is_a?(Array)
end

#parse_arrayObject



30
31
32
33
34
35
36
37
# File 'lib/params_transformer/value_parser/has_many.rb', line 30

def parse_array
  hash = {}
  input_value.each_with_index do |obj_hash, index|
    object_hash = transformer.new(obj_hash).transform
    hash[index] = object_hash
  end
  hash
end

#parse_hashObject



21
22
23
24
25
26
27
28
# File 'lib/params_transformer/value_parser/has_many.rb', line 21

def parse_hash
  hash = {}
  input_value.each do |index, obj_hash|
    object_hash = transformer.new(obj_hash).transform
    hash[index] = object_hash
  end
  hash
end