class R2OAS::Schema::V3::SchemaGenerator

Public Class Methods

new(options = {}) click to toggle source
Calls superclass method R2OAS::Schema::V3::BaseGenerator::new
# File lib/r2-oas/schema/v3/generator/schema_generator.rb, line 13
def initialize(options = {})
  super(options)
  @docs = create_docs
  @options = options
end

Public Instance Methods

generate_docs() click to toggle source
# File lib/r2-oas/schema/v3/generator/schema_generator.rb, line 19
def generate_docs
  logger.info '<From routes data>'
  generate_docs_from_routes_data
end

Private Instance Methods

generate_docs_from_routes_data() click to toggle source
# File lib/r2-oas/schema/v3/generator/schema_generator.rb, line 26
def generate_docs_from_routes_data
  process_when_generate_docs do |save_file_path|
    logger.info " Add schema file into store: \t#{save_file_path}"
  end
end
process_when_generate_docs() { |save_file_path(type: :relative)| ... } click to toggle source
# File lib/r2-oas/schema/v3/generator/schema_generator.rb, line 32
def process_when_generate_docs
  logger.info '<Update schema files>'
  @docs.each do |field_name, data|
    result = { field_name.to_s => data }

    case field_name
    when 'paths'
      logger.info ' [Generate OAS schema files (paths)] start'
      PathGenerator.new(result, @options).generate_docs
      logger.info ' [Generate OAS schema files (paths)] end'
    when 'components'
      logger.info ' [Generate OAS schema files (components)] start'
      ComponentsGenerator.new(result, @options).generate_docs
      logger.info ' [Generate OAS schema files (components)] end'
    else
      file_manager = FileManager.new(field_name, :relative)
      save_file_path = file_manager.save_file_path(type: :relative)
      store.add(save_file_path, result.to_yaml)

      yield file_manager.save_file_path(type: :relative) if block_given?
    end
  end
end