Class: Babl::Nodes::Typed

Inherits:
Object
  • Object
show all
Defined in:
lib/babl/nodes/typed.rb

Constant Summary collapse

CURRIED =
method(:new).curry(2)
BOOLEAN =
CURRIED.call(Schema::Typed::BOOLEAN)
INTEGER =
CURRIED.call(Schema::Typed::INTEGER)
NUMBER =
CURRIED.call(Schema::Typed::NUMBER)
STRING =
CURRIED.call(Schema::Typed::STRING)

Instance Method Summary collapse

Instance Method Details

#dependenciesObject



14
15
16
# File 'lib/babl/nodes/typed.rb', line 14

def dependencies
    node.dependencies
end

#pinned_dependenciesObject



18
19
20
# File 'lib/babl/nodes/typed.rb', line 18

def pinned_dependencies
    node.pinned_dependencies
end

#render(ctx) ⇒ Object



22
23
24
25
26
# File 'lib/babl/nodes/typed.rb', line 22

def render(ctx)
    value = node.render(ctx)
    return value if schema.classes.any? { |clazz| clazz === value }
    raise Errors::RenderingError, "Expected type '#{schema.type}': #{value}\n#{ctx.formatted_stack}"
end