Class: Apiwork::Union
- Inherits:
-
Object
- Object
- Apiwork::Union
- Defined in:
- lib/apiwork/union.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#discriminator ⇒ Object
readonly
Returns the value of attribute discriminator.
-
#variants ⇒ Object
readonly
Returns the value of attribute variants.
Instance Method Summary collapse
-
#initialize(discriminator: nil) ⇒ Union
constructor
A new instance of Union.
-
#variant(deprecated: false, description: nil, partial: false, tag: nil) {|variant| ... } ⇒ void
Defines a union variant.
Constructor Details
#initialize(discriminator: nil) ⇒ Union
Returns a new instance of Union.
8 9 10 11 |
# File 'lib/apiwork/union.rb', line 8 def initialize(discriminator: nil) @discriminator = discriminator @variants = [] end |
Instance Attribute Details
#discriminator ⇒ Object (readonly)
Returns the value of attribute discriminator.
5 6 7 |
# File 'lib/apiwork/union.rb', line 5 def discriminator @discriminator end |
#variants ⇒ Object (readonly)
Returns the value of attribute variants.
5 6 7 |
# File 'lib/apiwork/union.rb', line 5 def variants @variants end |
Instance Method Details
#variant(deprecated: false, description: nil, partial: false, tag: nil) {|variant| ... } ⇒ void
This method returns an undefined value.
Defines a union variant.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/apiwork/union.rb', line 41 def variant(deprecated: false, description: nil, partial: false, tag: nil, &block) validate_tag!(tag) raise ConfigurationError, 'variant requires a block' unless block element = build_element block.arity.positive? ? yield(element) : element.instance_eval(&block) element.validate! data = { deprecated:, description:, partial:, tag:, custom_type: element.custom_type, enum: element.enum, format: element.format, max: element.max, min: element.min, of: element.inner, shape: element.shape, type: element.type, value: element.value, }.compact append_or_merge_variant(data, tag) end |