class Dhall::If

Public Class Methods

decode(pred, thn, els) click to toggle source
# File lib/dhall/binary.rb, line 194
def self.decode(pred, thn, els)
        new(
                predicate: Dhall.decode(pred),
                then:      Dhall.decode(thn),
                else:      Dhall.decode(els)
        )
end

Public Instance Methods

as_json() click to toggle source
# File lib/dhall/ast.rb, line 1112
def as_json
        [14, predicate.as_json, self.then.as_json, self.else.as_json]
end
normalize() click to toggle source
Calls superclass method Dhall::Expression#normalize
# File lib/dhall/normalize.rb, line 396
def normalize
        normalized = super
        if normalized.predicate.is_a?(Bool)
                normalized.predicate.reduce(normalized.then, normalized.else)
        elsif normalized.trivial?
                normalized.predicate
        elsif normalized.then == normalized.else
                normalized.then
        else
                normalized
        end
end
trivial?() click to toggle source
# File lib/dhall/normalize.rb, line 409
def trivial?
        self.then == Bool.new(value: true) &&
                self.else == Bool.new(value: false)
end