Class: Tailmix::Definition::Merger

Inherits:
Object
  • Object
show all
Defined in:
lib/tailmix/definition/merger.rb

Overview

A service object responsible for deep-merging two tailmix definitions.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parent_def, child_def) ⇒ Merger

Returns a new instance of Merger.



11
12
13
14
# File 'lib/tailmix/definition/merger.rb', line 11

def initialize(parent_def, child_def)
  @parent_def = parent_def
  @child_def = child_def
end

Class Method Details

.call(parent_def, child_def) ⇒ Object



7
8
9
# File 'lib/tailmix/definition/merger.rb', line 7

def self.call(parent_def, child_def)
  new(parent_def, child_def).merge
end

Instance Method Details

#mergeObject



16
17
18
19
20
21
# File 'lib/tailmix/definition/merger.rb', line 16

def merge
  Result::Context.new(
    elements: merged_elements,
    actions: merged_actions
  )
end