Class: RosettAi::Composition::MergeStrategy::ArrayUnion

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/composition/merge_strategy.rb

Overview

Array-union strategy: when the same rule ID exists in multiple scopes, array fields are combined (union) and deduplicated. Scalar fields use highest-priority value.

Instance Method Summary collapse

Instance Method Details

#apply(rules) ⇒ Array<Hash>

Returns merged rules (arrays unioned by ID).

Parameters:

  • rules (Array<Hash>)

    sorted rules (highest priority first)

Returns:

  • (Array<Hash>)

    merged rules (arrays unioned by ID)



98
99
100
101
102
103
104
# File 'lib/rosett_ai/composition/merge_strategy.rb', line 98

def apply(rules)
  MergeStrategy.group_by_id(rules).map do |_id, group|
    next group.first if group.size == 1

    merge_group(group)
  end
end