Class: Jsapi::Meta::Schema::Discriminator

Inherits:
Model::Base
  • Object
show all
Includes:
OpenAPI::Extensions
Defined in:
lib/jsapi/meta/schema/discriminator.rb

Constant Summary

Constants included from Model::Attributes

Model::Attributes::DEFAULT_ARRAY, Model::Attributes::DEFAULT_HASH

Instance Method Summary collapse

Methods included from OpenAPI::Extensions

included

Methods inherited from Model::Base

#initialize, #inspect, #merge!, #reference?, #resolve

Methods included from Model::Attributes

#attribute, #attribute_names

Constructor Details

This class inherits a constructor from Jsapi::Meta::Model::Base

Instance Method Details

#default_mappingObject

:attr: default_mapping Applies to OpenAPI 3.2 and higher.



12
# File 'lib/jsapi/meta/schema/discriminator.rb', line 12

attribute :default_mapping, String

#mappingsObject

:attr: mappings Applies to OpenAPI 3.0 and higher.



17
# File 'lib/jsapi/meta/schema/discriminator.rb', line 17

attribute :mappings, { Object => String }

#property_nameObject

:attr: property_name



21
# File 'lib/jsapi/meta/schema/discriminator.rb', line 21

attribute :property_name, String

#to_openapi(version) ⇒ Object

Returns a hash representing the OpenAPI discriminator object.



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/jsapi/meta/schema/discriminator.rb', line 24

def to_openapi(version, *)
  version = OpenAPI::Version.from(version)
  return property_name if version < OpenAPI::V3_0

  result = {
    propertyName: property_name,
    mapping: mappings.transform_keys(&:to_s).presence,
    defaultMapping: (default_mapping if version >= OpenAPI::V3_2)
  }
  version >= OpenAPI::V3_1 ? with_openapi_extensions(result) : result.compact
end