class Babl::Nodes::Each
Public Instance Methods
dependencies()
click to toggle source
# File lib/babl/nodes/each.rb, line 9 def dependencies node_deps = node.dependencies child_deps = node_deps.reject { |key, _| key == Parent::PARENT_MARKER } Babl::Utils::Hash.deep_merge([ node_deps[Parent::PARENT_MARKER] || Utils::Hash::EMPTY, __each__: child_deps ]) end
optimize()
click to toggle source
# File lib/babl/nodes/each.rb, line 27 def optimize optimized = node.optimize optimized.equal?(node) ? self : Each.new(node.optimize) end
pinned_dependencies()
click to toggle source
# File lib/babl/nodes/each.rb, line 23 def pinned_dependencies node.pinned_dependencies end
render(frame)
click to toggle source
# File lib/babl/nodes/each.rb, line 32 def render(frame) collection = frame.object unless Enumerable === collection raise Errors::RenderingError, "Not enumerable : #{collection.inspect}\n#{frame.formatted_stack}" end idx = -1 collection.map do |value| frame.move_forward(value, idx += 1) do |new_frame| node.render(new_frame) end end end
schema()
click to toggle source
# File lib/babl/nodes/each.rb, line 19 def schema Schema::DynArray.new(node.schema) end