Method: OpenApi::Generator.build

Defined in:
lib/open-api/generator.rb

.build(opts = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/open-api/generator.rb', line 6

def build(opts = {})
  base_paths = find_base_paths(opts)

  doc = OpenApi..reject { |k, _v| HIDDEN_ROOT_KEYS.include?(k.to_sym) }
  doc[:info] = OpenApi::Utils.(doc[:info]) if doc[:info].is_a?(Hash)

  tags, paths, definitions = build_endpoint_content(base_paths, opts)
  doc[:tags] = OpenApi::Utils.(tags.values) if tags.present?
  doc[:paths] = OpenApi::Utils.(paths, start_depth: 2, end_depth: 4)
  doc[:definitions] = OpenApi::Utils.(definitions, start_depth: 2,
      end_depth: 3)

  doc = OpenApi::Utils.(doc, end_depth: 2)
  doc[:swagger] = doc[:swagger].to_s if doc.include?(:swagger)

  doc
end