Module: Schematist::DSL::ComplexTypes

Included in:
Schematist::DSL
Defined in:
lib/schematist/dsl/complex_types.rb

Instance Method Summary collapse

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, **options, &block)
  add_property_or_self(name, all_of_schema(description: description, **options, &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, **options, &block)
  add_property_or_self(name, any_of_schema(description: description, **options, &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, **options, &block)
  add_property_or_self(name, array_schema(description: description, **options, &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, **options, &block)
  add_property_or_self(name, none_of_schema(description: description, **options, &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, **options, &block)
  add_property_or_self(name, object_schema(description: description, **options, &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, **options, &block)
  add_property_or_self(name, one_of_schema(description: description, **options, &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, **options, &block)
  add_property_or_self(name, tuple_schema(description: description, **options, &block), required: required, requires: requires)
end