class Babl::Nodes::Object

Constants

EMPTY

Public Instance Methods

dependencies() click to toggle source
# File lib/babl/nodes/object.rb, line 11
        def dependencies
    Babl::Utils::Hash.deep_merge(nodes.values.map(&:dependencies))
end
optimize() click to toggle source
# File lib/babl/nodes/object.rb, line 24
        def optimize
    optimized_nodes = nodes.map { |k, v| [k, v.optimize] }.to_h
    object = self if optimized_nodes.all? { |k, v| v.equal?(nodes[k]) }
    object ||= Object.new(optimized_nodes)

    return object unless optimized_nodes.values.all? { |node| Constant === node }

    Constant.new(optimized_nodes.map { |k, v| [k, v.value] }.to_h.freeze, object.schema)
end
pinned_dependencies() click to toggle source
# File lib/babl/nodes/object.rb, line 15
        def pinned_dependencies
    Babl::Utils::Hash.deep_merge(nodes.values.map(&:pinned_dependencies))
end
render(frame) click to toggle source
# File lib/babl/nodes/object.rb, line 34
def render(frame)
    out = {}
    nodes.each { |k, v| out[k] = v.render(frame) }
    out
end
schema() click to toggle source
# File lib/babl/nodes/object.rb, line 19
        def schema
    properties = nodes.map { |k, v| Schema::Object::Property.new(k, v.schema, true) }
    Schema::Object.new(properties, false)
end