class Babl::Nodes::Nav

Public Instance Methods

dependencies() click to toggle source
# File lib/babl/nodes/nav.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,
        property => child_deps
    ])
end
optimize() click to toggle source
# File lib/babl/nodes/nav.rb, line 27
        def optimize
    optimized = node.optimize
    return optimized if Constant === optimized || GotoPin === optimized
    return optimized.node if Parent === optimized
    return self if optimized.equal?(node)

    Nav.new(property, optimized)
end
pinned_dependencies() click to toggle source
# File lib/babl/nodes/nav.rb, line 23
        def pinned_dependencies
    node.pinned_dependencies
end
render(frame) click to toggle source
# File lib/babl/nodes/nav.rb, line 36
def render(frame)
    value = begin
                object = frame.object
                ::Hash === object ? object.fetch(property) : object.send(property)
            rescue StandardError => e
                raise Errors::RenderingError, "#{e.message}\n" + frame.formatted_stack(property), e.backtrace
            end

    frame.move_forward(value, property) do |new_frame|
        node.render(new_frame)
    end
end
schema() click to toggle source
# File lib/babl/nodes/nav.rb, line 19
        def schema
    node.schema
end