class R2OAS::Schema::V3::DocBuilder

Attributes

oas_doc[RW]
pure_oas_doc[RW]

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method R2OAS::Schema::V3::BaseBuilder::new
# File lib/r2-oas/schema/v3/builder/doc_builder.rb, line 14
def initialize(opts = {})
  super
end

Public Instance Methods

build_docs() click to toggle source
# File lib/r2-oas/schema/v3/builder/doc_builder.rb, line 18
def build_docs
  logger.info '[Build OAS schema files] start'
  logger.info '[Build OAS docs from schema files] start'
  build_docs_from_schema_files
  logger.info '[Build OAS docs from schema files] end'
  logger.info '[Build OAS schema files] end'
end

Private Instance Methods

build_docs_from_schema_files() click to toggle source
# File lib/r2-oas/schema/v3/builder/doc_builder.rb, line 28
def build_docs_from_schema_files
  result_before_squeeze = schema_files_paths.each_with_object({}) do |path, data|
    file_manager = FileManager.new(path)
    yaml = YAML.load_file(path)
    data.deep_merge!(yaml)
    logger.info " Use schema file: \t#{file_manager.save_file_path(type: :relative)}"
  end

  result = if many_paths_file_paths.present?
             Squeezer.new(result_before_squeeze, many_paths_file_paths: many_paths_file_paths).squeeze_docs
           else
             result_before_squeeze
          end

  @pure_oas_doc = result.dup
  rsult = FromFiles::OpenapiObject.new(result, opts).to_doc if use_plugin?
  @oas_doc = result

  File.write(output? ? output_path : doc_save_file_path, result.to_yaml)
end