Class: RosettAi::Composition::MergeStrategy::DeepMerge

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

Overview

Deep-merge strategy: when the same rule ID exists in multiple scopes, hash fields from all occurrences are recursively merged. Higher-priority values take precedence for scalar fields.

Instance Method Summary collapse

Instance Method Details

#apply(rules) ⇒ Array<Hash>

Returns merged rules (hashes deep-merged by ID).

Parameters:

  • rules (Array<Hash>)

    sorted rules (highest priority first)

Returns:

  • (Array<Hash>)

    merged rules (hashes deep-merged by ID)



66
67
68
69
70
71
72
# File 'lib/rosett_ai/composition/merge_strategy.rb', line 66

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

    merge_group(group)
  end
end