class Dhall::Coder::Verifier

Public Class Methods

new(*classes) click to toggle source
# File lib/dhall/coder.rb, line 14
def initialize(*classes)
        @classes = classes
        @matcher = ValueSemantics::Either.new(classes)
end

Public Instance Methods

verify(obj, op) click to toggle source
# File lib/dhall/coder.rb, line 28
def verify(obj, op)
        if @matcher === obj
                obj
        else
                raise ArgumentError, "#{op} does not match "\
                                     "#{@classes.inspect}: #{obj.inspect}"
        end
end
verify_class(klass, op) click to toggle source
# File lib/dhall/coder.rb, line 19
def verify_class(klass, op)
        if @classes.any? { |safe| klass <= safe }
                klass
        else
                raise ArgumentError, "#{op} does not match "\
                                     "#{@classes.inspect}: #{klass}"
        end
end