Class: Lutaml::Model::Consolidation::Dispatcher

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/model/consolidation/dispatcher.rb

Instance Method Summary collapse

Constructor Details

#initialize(dispatch_block) ⇒ Dispatcher

Returns a new instance of Dispatcher.



7
8
9
# File 'lib/lutaml/model/consolidation/dispatcher.rb', line 7

def initialize(dispatch_block)
  @dispatch_block = dispatch_block
end

Instance Method Details

#dispatch(group_instance, items) ⇒ Object

Parameters:

  • group_instance (Serializable)

    the GroupClass instance

  • items (Array)

    raw items to route



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/lutaml/model/consolidation/dispatcher.rb', line 13

def dispatch(group_instance, items)
  items.each do |item|
    value = item.public_send(@dispatch_block.discriminator)
    target_attr = @dispatch_block.route_for(value)
    next unless target_attr

    assign(group_instance, target_attr, item)
  end

  group_instance
end