module Babl::Operators::Static::DSL

Public Instance Methods

static(val) click to toggle source

Create a static JSON value

# 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
        frozen_val = sanitized_val.dup.freeze
        construct_terminal { Nodes::Constant.new(frozen_val, Schema::Primitive.new(frozen_val)) }
    when ::NilClass
        construct_terminal { Nodes::Constant::NULL }
    when ::TrueClass
        construct_terminal { Nodes::Constant::TRUE }
    when ::FalseClass
        construct_terminal { Nodes::Constant::FALSE }
    else call(sanitized_val)
    end
rescue Errors::RenderingError => exception
    raise Errors::InvalidTemplate, exception.message
end