Class: SwaggerDocsRails::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/swagger_docs_rails/generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Generator

Returns a new instance of Generator.



6
7
8
9
10
# File 'lib/swagger_docs_rails/generator.rb', line 6

def initialize(opts = {})
  @schema_path      = opts[:schema_path]
  @controllers_path = opts[:controllers_path]
  @config           = opts.fetch(:config, {})
end

Instance Method Details

#generateObject



12
13
14
15
16
# File 'lib/swagger_docs_rails/generator.rb', line 12

def generate
  schema_parser     = SchemaParser.new(@schema_path)
  controller_parser = ControllerParser.new(controller_paths)
  OpenapiBuilder.new(schema_parser, controller_parser, @config).build
end

#generate_jsonObject



18
19
20
# File 'lib/swagger_docs_rails/generator.rb', line 18

def generate_json
  JSON.pretty_generate(generate)
end

#write(output_path = nil) ⇒ Object



22
23
24
25
26
27
# File 'lib/swagger_docs_rails/generator.rb', line 22

def write(output_path = nil)
  output_path ||= SwaggerDocsRails.configuration.output_path
  FileUtils.mkdir_p(File.dirname(output_path.to_s))
  File.write(output_path.to_s, JSON.pretty_generate(generate))
  output_path
end