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