Class: Babl::Operators::Merge::MergeNode
- Inherits:
-
Object
- Object
- Babl::Operators::Merge::MergeNode
- Defined in:
- lib/babl/operators/merge.rb
Instance Method Summary collapse
- #dependencies ⇒ Object
- #documentation ⇒ Object
-
#initialize(nodes) ⇒ MergeNode
constructor
A new instance of MergeNode.
- #pinned_dependencies ⇒ Object
- #render(ctx) ⇒ Object
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
#dependencies ⇒ Object
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 |
#documentation ⇒ Object
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_dependencies ⇒ Object
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 |