Class: EasyTalk::Builders::CompositionBuilder
- Inherits:
-
Object
- Object
- EasyTalk::Builders::CompositionBuilder
show all
- Extended by:
- CollectionHelpers, T::Sig
- Defined in:
- lib/easy_talk/builders/composition_builder.rb
Overview
This class represents a builder for composing JSON schemas using the "allOf", "anyOf", or "oneOf" keywords.
Defined Under Namespace
Classes: AllOfBuilder, AnyOfBuilder, OneOfBuilder
Constant Summary
collapse
- COMPOSER_TO_KEYWORD =
{
'AllOfBuilder' => 'allOf',
'AnyOfBuilder' => 'anyOf',
'OneOfBuilder' => 'oneOf'
}.freeze
- VALID_OPTIONS =
%i[title description optional as validate ref].freeze
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, type, constraints) ⇒ CompositionBuilder
Initializes a new instance of the CompositionBuilder class.
28
29
30
31
32
33
34
35
|
# File 'lib/easy_talk/builders/composition_builder.rb', line 28
def initialize(name, type, constraints)
EasyTalk.assert_valid_property_options(name, constraints, VALID_OPTIONS)
@composer_type = self.class.name.split('::').last
@name = name
@type = type
@context = {}
@constraints = constraints
end
|
Instance Method Details
#build ⇒ Object
41
42
43
44
45
46
|
# File 'lib/easy_talk/builders/composition_builder.rb', line 41
def build
@context[@name.to_sym] = {
type: 'object',
composer_keyword => schemas
}
end
|
#composer_keyword ⇒ Object
52
53
54
|
# File 'lib/easy_talk/builders/composition_builder.rb', line 52
def composer_keyword
COMPOSER_TO_KEYWORD[@composer_type]
end
|
#items ⇒ Object
77
78
79
|
# File 'lib/easy_talk/builders/composition_builder.rb', line 77
def items
@type.items
end
|