Class: OpenApiDocumentation::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/apiculture/openapi_documentation.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, prefix, chunks) ⇒ Base

Returns a new instance of Base.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/apiculture/openapi_documentation.rb', line 6

def initialize(app, prefix, chunks)
  @app, @prefix = app, prefix
  @paths = chunks.select { |chunk| chunk.respond_to?(:http_verb) }
  @data = {
    openapi: '3.0.0',
    info: {
      title: @app.to_s,
      version: '0.0.1',
      description: @app.to_s + " " + chunks.select { |chunk| chunk.respond_to?(:to_markdown) }.map(&:to_markdown).join("\n")
    },
    tags: []
  }
  @data[:paths] = build_paths
end

Instance Method Details

#pathsObject



25
26
27
# File 'lib/apiculture/openapi_documentation.rb', line 25

def paths
  @data[:paths]
end

#specObject



29
30
31
# File 'lib/apiculture/openapi_documentation.rb', line 29

def spec
  @data
end

#to_yamlObject



21
22
23
# File 'lib/apiculture/openapi_documentation.rb', line 21

def to_yaml
  JSON.load(@data.to_json).to_yaml # trickery to get string based yaml
end