Module: TypedParameter::Swagger::ComponentGenerator

Defined in:
lib/typed_parameter/swagger/component_generator.rb

Class Method Summary collapse

Class Method Details

.generate(parameter_class) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/typed_parameter/swagger/component_generator.rb', line 5

def generate(parameter_class)
  key = parameter_class.key
  properties = Swagger::PropertyGenerator.generate(parameter_class.swagger_properties)

  swagger = { type: :object, properties: properties }
  swagger[:required] = parameter_class.swagger_requirements if parameter_class.swagger_requirements.present?
  { "#{key}": swagger }
end

.generate_all!Object



14
15
16
17
18
# File 'lib/typed_parameter/swagger/component_generator.rb', line 14

def generate_all!
  parameter_classes = TypedParameter::Base.descendants.reject { |c| c.swagger_properties.empty? }

  parameter_classes.reduce({}) { |prev, curr| prev.merge(generate(curr)) }
end