Class: Babl::Operators::Merge::MergeNode

Inherits:
Object
  • Object
show all
Defined in:
lib/babl/operators/merge.rb

Instance Method Summary collapse

Constructor Details

#initialize(nodes) ⇒ MergeNode

Returns a new instance of MergeNode.



21
22
23
# File 'lib/babl/operators/merge.rb', line 21

def initialize(nodes)
    @nodes = nodes
end

Instance Method Details

#dependenciesObject



25
26
27
# File 'lib/babl/operators/merge.rb', line 25

def dependencies
    nodes.map(&:dependencies).reduce({}) { |a, b| Babl::Utils::Hash.deep_merge(a, b) }
end

#documentationObject



33
34
35
36
37
# File 'lib/babl/operators/merge.rb', line 33

def documentation
    nodes.map(&:documentation).each_with_index.map { |doc, idx|
        [:"Merge #{idx + 1}", doc]
    }.to_h
end

#pinned_dependenciesObject



29
30
31
# File 'lib/babl/operators/merge.rb', line 29

def pinned_dependencies
    nodes.map(&:pinned_dependencies).reduce({}) { |a, b| Babl::Utils::Hash.deep_merge(a, b) }
end

#render(ctx) ⇒ Object



39
40
41
# File 'lib/babl/operators/merge.rb', line 39

def render(ctx)
    nodes.map { |node| node.render(ctx) }.compact.reduce({}, :merge)
end