class OasRails::Spec::Components
def add_example(example)
def add_example(example) key = Hashable.generate_hash(example) @examples[key] = example if @examples[key].nil? example_reference(key) end
def add_parameter(parameter)
def add_parameter(parameter) key = parameter.hash_key @parameters[key] = parameter unless @parameters.key? key parameter_reference(key) end
def add_request_body(request_body)
def add_request_body(request_body) key = request_body.hash_key @request_bodies[key] = request_body unless @request_bodies.key? key request_body_reference(key) end
def add_response(response)
def add_response(response) key = response.hash_key @responses[key] = response unless @responses.key? key response_reference(key) end
def add_schema(schema)
def add_schema(schema) key = Hashable.generate_hash(schema) @schemas[key] = schema if @schemas[key].nil? schema_reference(key) end
def create_reference(type, name)
def create_reference(type, name) "#/components/#{type}/#{name}" end
def example_reference(name)
def example_reference(name) Reference.new(create_reference('examples', name)) end
def initialize(specification)
def initialize(specification) @specification = specification @schemas = {} @parameters = {} @security_schemes = OasRails.config.security_schemas @request_bodies = {} @responses = {} @headers = {} @examples = {} @links = {} @callbacks = {} end
def oas_fields
def oas_fields [:request_bodies, :examples, :responses, :schemas, :parameters, :security_schemes] end
def parameter_reference(name)
def parameter_reference(name) Reference.new(create_reference('parameters', name)) end
def request_body_reference(name)
def request_body_reference(name) Reference.new(create_reference('requestBodies', name)) end
def response_reference(name)
def response_reference(name) Reference.new(create_reference('responses', name)) end
def schema_reference(name)
def schema_reference(name) Reference.new(create_reference('schemas', name)) end