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