module Kind::ASSERT_HASH_SCHEMA
Constants
- UnionType
Public Instance Methods
all(hash, spec)
click to toggle source
# File lib/kind/__lib__/assert_hash_schema.rb, line 47 def all(hash, spec) ASSERT_HASH_KEYS.require_all(spec.keys, hash) any(hash, spec) end
any(hash, spec)
click to toggle source
# File lib/kind/__lib__/assert_hash_schema.rb, line 29 def any(hash, spec) spec.each do |key, expected| value = hash[key] error_message = "The key #{key.inspect} has an invalid value" case expected when ::Module then assert_kind_of(expected, value, error_message) when ::Proc then assert(expected.call(value), error_message) when ::Regexp then assert_match(expected, value, error_message) when ::NilClass then assert_nil(value, error_message) when UnionType then assert(expected === value, error_message) else assert_equal(expected, value, error_message) end end hash end
Private Instance Methods
assert(value, message)
click to toggle source
# File lib/kind/__lib__/assert_hash_schema.rb, line 59 def assert(value, message) raise_kind_error(message) unless value end
assert_equal(expected, value, message)
click to toggle source
# File lib/kind/__lib__/assert_hash_schema.rb, line 55 def assert_equal(expected, value, message) raise_kind_error(message) if expected != value end
assert_kind_of(expected, value, message)
click to toggle source
# File lib/kind/__lib__/assert_hash_schema.rb, line 73 def assert_kind_of(expected, value, message) raise_kind_error(message) unless expected === value end
assert_match(expected, value, message)
click to toggle source
# File lib/kind/__lib__/assert_hash_schema.rb, line 67 def assert_match(expected, value, message) STRICT.kind_of(String, value) raise_kind_error(message) if value !~ expected end
assert_nil(value, message)
click to toggle source
# File lib/kind/__lib__/assert_hash_schema.rb, line 63 def assert_nil(value, message) raise_kind_error(message) unless value.nil? end
raise_kind_error(message)
click to toggle source
# File lib/kind/__lib__/assert_hash_schema.rb, line 77 def raise_kind_error(message) raise Error.new(message) end