Module: Jsapi::Meta::Schema
- Defined in:
- lib/jsapi/meta/schema.rb,
lib/jsapi/meta/schema/base.rb,
lib/jsapi/meta/schema/array.rb,
lib/jsapi/meta/schema/number.rb,
lib/jsapi/meta/schema/object.rb,
lib/jsapi/meta/schema/string.rb,
lib/jsapi/meta/schema/boolean.rb,
lib/jsapi/meta/schema/integer.rb,
lib/jsapi/meta/schema/numeric.rb,
lib/jsapi/meta/schema/boundary.rb,
lib/jsapi/meta/schema/delegator.rb,
lib/jsapi/meta/schema/reference.rb,
lib/jsapi/meta/schema/conversion.rb,
lib/jsapi/meta/schema/discriminator.rb,
lib/jsapi/meta/schema/validation/base.rb,
lib/jsapi/meta/schema/validation/enum.rb,
lib/jsapi/meta/schema/validation/maximum.rb,
lib/jsapi/meta/schema/validation/minimum.rb,
lib/jsapi/meta/schema/validation/pattern.rb,
lib/jsapi/meta/schema/validation/max_items.rb,
lib/jsapi/meta/schema/validation/min_items.rb,
lib/jsapi/meta/schema/additional_properties.rb,
lib/jsapi/meta/schema/validation/max_length.rb,
lib/jsapi/meta/schema/validation/min_length.rb,
lib/jsapi/meta/schema/validation/multiple_of.rb
Defined Under Namespace
Modules: Conversion, Validation Classes: AdditionalProperties, Array, Base, Boolean, Boundary, Delegator, Discriminator, Integer, Number, Numeric, Object, Reference, String
Constant Summary collapse
- TYPES =
:nodoc:
%w[array boolean integer number object string].freeze
Class Method Summary collapse
-
.new(keywords = {}) ⇒ Object
Creates a new schema.
Class Method Details
.new(keywords = {}) ⇒ Object
Creates a new schema. The :type keyword determines the type of the schema to be created. Possible types are:
-
"array" -
"boolean" -
"integer" -
"number" -
"object" -
"string"
The default type is "object".
Raises an InvalidArgumentError if the given type is invalid.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/jsapi/meta/schema.rb', line 43 def new(keywords = {}) return Reference.new(keywords) if keywords.key?(:ref) type = keywords[:type] case type&.to_s when 'array' Array when 'boolean' Boolean when 'integer' Integer when 'number' Number when 'object', nil Object when 'string' String else raise InvalidArgumentError.new('type', type, valid_values: TYPES) end.new(keywords.except(:type)) end |