Module: Babl::Operators::Static::DSL

Included in:
Template
Defined in:
lib/babl/operators/static.rb

Instance Method Summary collapse

Instance Method Details

#static(val) ⇒ Object

Create a static JSON value



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/babl/operators/static.rb', line 10

def static(val)
    sanitized_val = Nodes::TerminalValue.instance.render_object(val)

    case sanitized_val
    when ::String, ::Numeric, ::NilClass, ::TrueClass, ::FalseClass
        frozen_val = sanitized_val.dup.freeze
        construct_terminal {
            Nodes::Constant.new(frozen_val, Schema::Primitive.new(frozen_val))
        }
    else call(sanitized_val)
    end
rescue Errors::RenderingError => exception
    raise Errors::InvalidTemplate, exception.message
end