Module: Schematist::DSL::ComplexTypes
- Included in:
- Schematist::DSL
- Defined in:
- lib/schematist/dsl/complex_types.rb
Instance Method Summary collapse
- #all_of(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
- #any_of(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
- #array(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
- #none_of(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
- #object(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
- #one_of(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
- #optional(name, description: nil, &block) ⇒ Object
-
#raw(name, schema = nil, required: true, requires: nil) ⇒ Object
Emits a schema fragment verbatim, for the corners of JSON Schema this DSL does not cover.
- #tuple(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Instance Method Details
#all_of(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
26 27 28 |
# File 'lib/schematist/dsl/complex_types.rb', line 26 def all_of(name = nil, description: nil, required: true, requires: nil, **, &block) add_property_or_self(name, all_of_schema(description: description, **, &block), required: required, requires: requires) end |
#any_of(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
18 19 20 |
# File 'lib/schematist/dsl/complex_types.rb', line 18 def any_of(name = nil, description: nil, required: true, requires: nil, **, &block) add_property_or_self(name, any_of_schema(description: description, **, &block), required: required, requires: requires) end |
#array(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
10 11 12 |
# File 'lib/schematist/dsl/complex_types.rb', line 10 def array(name = nil, description: nil, required: true, requires: nil, **, &block) add_property_or_self(name, array_schema(description: description, **, &block), required: required, requires: requires) end |
#none_of(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
30 31 32 |
# File 'lib/schematist/dsl/complex_types.rb', line 30 def none_of(name = nil, description: nil, required: true, requires: nil, **, &block) add_property_or_self(name, none_of_schema(description: description, **, &block), required: required, requires: requires) end |
#object(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
6 7 8 |
# File 'lib/schematist/dsl/complex_types.rb', line 6 def object(name = nil, description: nil, required: true, requires: nil, **, &block) add_property_or_self(name, object_schema(description: description, **, &block), required: required, requires: requires) end |
#one_of(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
22 23 24 |
# File 'lib/schematist/dsl/complex_types.rb', line 22 def one_of(name = nil, description: nil, required: true, requires: nil, **, &block) add_property_or_self(name, one_of_schema(description: description, **, &block), required: required, requires: requires) end |
#optional(name, description: nil, &block) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/schematist/dsl/complex_types.rb', line 41 def optional(name, description: nil, &block) any_of(name, description: description) do instance_eval(&block) null end end |
#raw(name, schema = nil, required: true, requires: nil) ⇒ Object
Emits a schema fragment verbatim, for the corners of JSON Schema this DSL does not cover
35 36 37 38 39 |
# File 'lib/schematist/dsl/complex_types.rb', line 35 def raw(name, schema = nil, required: true, requires: nil) return self_schema(name) && nil if schema.nil? && name.is_a?(Hash) add_property_or_self(name, schema, required: required, requires: requires) end |
#tuple(name = nil, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
14 15 16 |
# File 'lib/schematist/dsl/complex_types.rb', line 14 def tuple(name = nil, description: nil, required: true, requires: nil, **, &block) add_property_or_self(name, tuple_schema(description: description, **, &block), required: required, requires: requires) end |