Sha256: 18f0cd31e4978da7cef7c0911353941e47cc074edea6ac856d67c663ef8bc34a

Contents?: true

Size: 551 Bytes

Versions: 7

Compression:

Stored size: 551 Bytes

Contents

module Test
  module TypeCheck
    class NullError < StandardError; end

    def Type?(value, *types)
      types.any? { |t| value.is_a? t }
    end

    def Type!(value, *types)
      Type?(value, *types) or
        raise TypeError, "Value (#{value.class}) '#{value}' is not any of: #{types.join('; ')}."
      value
    end

    def NotNull!(value)
      raise NullError, "Value must not be nil" unless value
    end

    def Argument!(expression, message = "Illegal argument")
      raise ArgumentError, message unless expression
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
test-tracer-1.2.1 lib/test/type_check.rb
test-tracer-1.2.0 lib/test/type_check.rb
test-tracer-1.1.4 lib/test/type_check.rb
test-tracer-1.1.3 lib/test/type_check.rb
test-tracer-1.1.2 lib/test/type_check.rb
test-tracer-1.1.1 lib/test/type_check.rb
test-tracer-1.1.0 lib/test/type_check.rb