Class: Babl::Rendering::TerminalValueNode

Inherits:
Object
  • Object
show all
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

Instance Method Details

#dependenciesObject



15
16
17
# File 'lib/babl/rendering/terminal_value_node.rb', line 15

def dependencies
    {}
end

#documentationObject



11
12
13
# File 'lib/babl/rendering/terminal_value_node.rb', line 11

def documentation
    :__value__
end

#pinned_dependenciesObject



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