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
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, type, constraints) ⇒ CompositionBuilder
Initializes a new instance of the CompositionBuilder class.
26
27
28
29
30
31
32
|
# File 'lib/easy_talk/builders/composition_builder.rb', line 26
def initialize(name, type, constraints)
@composer_type = self.class.name.split('::').last
@name = name
@type = type
@context = {}
@constraints = constraints
end
|
Instance Method Details
#build ⇒ Object
38
39
40
41
42
43
|
# File 'lib/easy_talk/builders/composition_builder.rb', line 38
def build
@context[@name.to_sym] = {
type: 'object',
composer_keyword => schemas
}
end
|
#composer_keyword ⇒ Object
49
50
51
|
# File 'lib/easy_talk/builders/composition_builder.rb', line 49
def composer_keyword
COMPOSER_TO_KEYWORD[@composer_type]
end
|
#items ⇒ Object
74
75
76
|
# File 'lib/easy_talk/builders/composition_builder.rb', line 74
def items
@type.items
end
|