Module: Babl::Operators::Merge::DSL

Included in:
Template
Defined in:
lib/babl/operators/merge.rb

Instance Method Summary collapse

Instance Method Details

#merge(*templates) ⇒ Object

Merge multiple JSON objects (non-deep)



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/babl/operators/merge.rb', line 10

def merge(*templates)
    return call(Utils::Hash::EMPTY) if templates.empty?
    templates = templates.map { |t| unscoped.call(t) }

    construct_terminal { |context|
        Nodes::Merge.new(
            templates.map { |t|
                t.builder.precompile(
                    Nodes::TerminalValue.instance,
                    context.merge(continue: nil)
                )
            }
        )
    }
end