Class: GrapeOAS::ApiModelBuilders::RequestParamsSupport::ParamSchemaBuilder

Inherits:
Object
  • Object
show all
Includes:
Concerns::OasUtilities, Concerns::TypeResolver
Defined in:
lib/grape_oas/api_model_builders/request_params_support/param_schema_builder.rb

Overview

Builds OpenAPI schemas from Grape parameter specifications.

Constant Summary

Constants included from Concerns::OasUtilities

Concerns::OasUtilities::VALID_CONSTANT_PATTERN

Constants included from Concerns::TypeResolver

Concerns::TypeResolver::MULTI_TYPE_PATTERN, Concerns::TypeResolver::TYPED_ARRAY_PATTERN

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Concerns::OasUtilities

extract_extensions, #extract_extensions, pluralize, #pluralize, underscore, #underscore, valid_constant_name?, #valid_constant_name?

Methods included from Concerns::TypeResolver

#build_array_items_schema, #build_schema_for_primitive, #derive_primitive_and_member, #extract_multi_types, #extract_typed_array_member, #grape_boolean_type?, #multi_type?, #resolve_schema_type

Class Method Details

.build(spec) ⇒ ApiModel::Schema

Builds a schema for a parameter specification.

Parameters:

  • spec (Hash)

    the parameter specification

Returns:



15
16
17
# File 'lib/grape_oas/api_model_builders/request_params_support/param_schema_builder.rb', line 15

def self.build(spec)
  new.build(spec)
end

Instance Method Details

#build(spec) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/grape_oas/api_model_builders/request_params_support/param_schema_builder.rb', line 19

def build(spec)
  doc = spec[:documentation] || {}
  raw_type = spec[:type] || doc[:type]

  schema = build_base_schema(spec, doc, raw_type)
  SchemaEnhancer.apply(schema, spec, doc)
  schema
end