Class: GrapeOAS::ApiModelBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/grape_oas/api_model_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ ApiModelBuilder

Returns a new instance of ApiModelBuilder.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/grape_oas/api_model_builder.rb', line 7

def initialize(options = {})
  @api = GrapeOAS::ApiModel::API.new(
    title: options.dig(:info, :title) || options[:title] || "Grape API",
    version: options.dig(:info, :version) || options[:version] || "1",
  )

  @api.host = options[:host]
  @api.base_path = normalize_base_path(options[:base_path])
  @api.schemes = Array(options[:schemes]).compact
  @api.security_definitions = options[:security_definitions] || {}
  @api.security = options[:security] || []
  @api.tag_defs.merge(Array(options[:tags])) if options[:tags]
  @api.servers = build_servers(options)
  @api.registered_schemas = build_registered_schemas(options[:models])
  @api.suppress_default_error_response = options[:suppress_default_error_response] || false
  @api.nullable_strategy = options[:nullable_strategy]

  @namespace_filter = options[:namespace]
  @apis = []
end

Instance Attribute Details

#apiObject (readonly)

Returns the value of attribute api.



5
6
7
# File 'lib/grape_oas/api_model_builder.rb', line 5

def api
  @api
end

Instance Method Details

#add_app(app) ⇒ Object



28
29
30
31
32
# File 'lib/grape_oas/api_model_builder.rb', line 28

def add_app(app)
  GrapeOAS::ApiModelBuilders::Path
    .new(api: @api, routes: app.routes, app: app, namespace_filter: @namespace_filter)
    .build
end