Class: ParamsTransformer::ValueParser::HasMany
- Inherits:
-
ParamsTransformer::ValueParser
- Object
- ParamsTransformer::ValueParser
- ParamsTransformer::ValueParser::HasMany
- Includes:
- Relationship
- Defined in:
- lib/params_transformer/value_parser/has_many.rb
Instance Attribute Summary
Attributes included from Relationship
Attributes inherited from ParamsTransformer::ValueParser
Instance Method Summary collapse
-
#parse ⇒ Object
should return a pattern like…
- #parse_array ⇒ Object
- #parse_hash ⇒ Object
Methods included from Relationship
Methods inherited from ParamsTransformer::ValueParser
Constructor Details
This class inherits a constructor from ParamsTransformer::ValueParser
Instance Method Details
#parse ⇒ Object
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_array ⇒ Object
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_hash ⇒ Object
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 |