Class: Babl::Rendering::TerminalValueNode
- Inherits:
-
Object
- Object
- Babl::Rendering::TerminalValueNode
- Includes:
- Singleton
- Defined in:
- lib/babl/rendering/terminal_value_node.rb
Overview
A TerminalValueNode node is always implicitely added to the end of the chain during compilation. It basically ensures that the output contains only primitives, arrays and hashes.
Instance Method Summary collapse
- #dependencies ⇒ Object
- #documentation ⇒ Object
- #pinned_dependencies ⇒ Object
- #render(ctx) ⇒ Object
- #render_object(obj) ⇒ Object
Instance Method Details
#dependencies ⇒ Object
15 16 17 |
# File 'lib/babl/rendering/terminal_value_node.rb', line 15 def dependencies {} end |
#documentation ⇒ Object
11 12 13 |
# File 'lib/babl/rendering/terminal_value_node.rb', line 11 def documentation :__value__ end |
#pinned_dependencies ⇒ Object
19 20 21 |
# File 'lib/babl/rendering/terminal_value_node.rb', line 19 def pinned_dependencies {} end |
#render(ctx) ⇒ Object
23 24 25 |
# File 'lib/babl/rendering/terminal_value_node.rb', line 23 def render(ctx) render_object(ctx.object) end |
#render_object(obj) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/babl/rendering/terminal_value_node.rb', line 27 def render_object(obj) case obj when String, Numeric, NilClass, TrueClass, FalseClass then obj when Hash then render_hash(obj) when Array then render_array(obj) else raise Babl::RenderingError, "Only primitives can be serialized: #{obj}" end end |