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