Module: Ask::Schema::DSL::ComplexTypes
- Included in:
- Ask::Schema::DSL
- Defined in:
- lib/ask/schema/dsl/complex_types.rb
Overview
DSL methods for declaring complex (non-primitive) property types.
Instance Method Summary collapse
-
#any_of(name, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Declare a property accepting any of the listed schemas.
-
#array(name, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Declare an array property.
-
#object(name, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Declare an object property with inline or referenced sub-schema.
-
#one_of(name, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Declare a property accepting exactly one of the listed schemas.
-
#optional(name, description: nil, &block) ⇒ Object
Declare an optional (nullable) property using
anyOfwithnull.
Instance Method Details
#any_of(name, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Declare a property accepting any of the listed schemas.
37 38 39 |
# File 'lib/ask/schema/dsl/complex_types.rb', line 37 def any_of(name, description: nil, required: true, requires: nil, **, &block) add_property(name, any_of_schema(description: description, **, &block), required: required, requires: requires) end |
#array(name, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Declare an array property.
26 27 28 |
# File 'lib/ask/schema/dsl/complex_types.rb', line 26 def array(name, description: nil, required: true, requires: nil, **, &block) add_property(name, array_schema(description: description, **, &block), required: required, requires: requires) end |
#object(name, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Declare an object property with inline or referenced sub-schema.
15 16 17 |
# File 'lib/ask/schema/dsl/complex_types.rb', line 15 def object(name, description: nil, required: true, requires: nil, **, &block) add_property(name, object_schema(description: description, **, &block), required: required, requires: requires) end |
#one_of(name, description: nil, required: true, requires: nil, **options, &block) ⇒ Object
Declare a property accepting exactly one of the listed schemas.
48 49 50 |
# File 'lib/ask/schema/dsl/complex_types.rb', line 48 def one_of(name, description: nil, required: true, requires: nil, **, &block) add_property(name, one_of_schema(description: description, **, &block), required: required, requires: requires) end |
#optional(name, description: nil, &block) ⇒ Object
Declare an optional (nullable) property using anyOf with null.
63 64 65 66 67 68 |
# File 'lib/ask/schema/dsl/complex_types.rb', line 63 def optional(name, description: nil, &block) any_of(name, description: description) do instance_eval(&block) null end end |