Class: Lutaml::Model::Consolidation::AttributeGrouper
- Inherits:
-
Object
- Object
- Lutaml::Model::Consolidation::AttributeGrouper
- Defined in:
- lib/lutaml/model/consolidation/attribute_grouper.rb
Instance Method Summary collapse
Instance Method Details
#process(collection, map, raw_items) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/lutaml/model/consolidation/attribute_grouper.rb', line 10 def process(collection, map, raw_items) gather_rule = map.rules.find { |r| r.is_a?(GatherRule) } dispatch_block = map.rules.find { |r| r.is_a?(DispatchBlock) } # Group by the attribute declared in map.by grouped = raw_items.group_by { |item| item.public_send(map.by) } organized = grouped.map do |_key, items| build_group(map.group_class, items, gather_rule, dispatch_block) end collection.public_send(:"#{map.to}=", organized) end |