class Apipie::Generator::Swagger::ParamDescription::ReferencedComposite

A Composite that keeps track when a param description has been added to references

and returns the reference instead of the complete object

Public Class Methods

new(composite, param_type) click to toggle source

@param [Apipie::Generator::Swagger::ParamDescription::Composite] composite @param [Symbol, String] param_type

# File lib/apipie/generator/swagger/param_description/referenced_composite.rb, line 6
def initialize(composite, param_type)
  @composite = composite
  @param_type = param_type.to_sym
end

Public Instance Methods

to_swagger() click to toggle source
# File lib/apipie/generator/swagger/param_description/referenced_composite.rb, line 11
def to_swagger
  return ref_to(:name) if added?(:name)

  schema_obj = @composite.to_swagger

  return nil if schema_obj.nil?

  add(schema_obj)

  { '$ref' => ref_to(@param_type) }
end

Private Instance Methods

add(schema) click to toggle source
# File lib/apipie/generator/swagger/param_description/referenced_composite.rb, line 29
def add(schema)
  Apipie::Generator::Swagger::ReferencedDefinitions.instance.add!(@param_type, schema)
end
added?(name) click to toggle source
# File lib/apipie/generator/swagger/param_description/referenced_composite.rb, line 33
def added?(name)
  Apipie::Generator::Swagger::ReferencedDefinitions.instance.added?(name)
end
ref_to(name) click to toggle source
# File lib/apipie/generator/swagger/param_description/referenced_composite.rb, line 25
def ref_to(name)
  "#/definitions/#{name}"
end