Sha256: a631e2ff35ab33efd270aa6b68e280639a59b6473816eaced686b0d39c7d46cf
Contents?: true
Size: 1.98 KB
Versions: 1
Compression:
Stored size: 1.98 KB
Contents
class StrongJSON module Types # @type method object: (?Hash<Symbol, ty>) -> Type::Object<any> def object(fields = {}) if fields.empty? Type::Object.new(fields, on_unknown: :ignore, exceptions: Set.new) else Type::Object.new(fields, on_unknown: :reject, exceptions: Set.new) end end # @type method array: (?ty) -> Type::Array<any> def array(type = any) Type::Array.new(type) end # @type method optional: (?ty) -> Type::Optional<any> def optional(type = any) Type::Optional.new(type) end def string StrongJSON::Type::Base.new(:string) end def numeric StrongJSON::Type::Base.new(:numeric) end def number StrongJSON::Type::Base.new(:number) end def integer StrongJSON::Type::Base.new(:integer) end def boolean StrongJSON::Type::Base.new(:boolean) end def any StrongJSON::Type::Base.new(:any) end def any? optional(any) end def symbol StrongJSON::Type::Base.new(:symbol) end def literal(value) StrongJSON::Type::Literal.new(value) end def enum(*types, detector: nil) StrongJSON::Type::Enum.new(types, detector) end def string? optional(string) end def numeric? optional(numeric) end def integer? optional(integer) end def number? optional(number) end def boolean? optional(boolean) end def symbol? optional(symbol) end def array?(ty) optional(array(ty)) end # @type method object?: (?Hash<Symbol, ty>) -> Type::Optional<any> def object?(fields={}) optional(object(fields)) end def literal?(value) optional(literal(value)) end def enum?(*types, detector: nil) optional(enum(*types, detector: detector)) end def hash(type) StrongJSON::Type::Hash.new(type) end def hash?(type) optional(hash(type)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
strong_json-2.1.0 | lib/strong_json/types.rb |