Sha256: bce0258e45d8bb81e416191ad86d59ce5a3f1a60a27af0766d4de74e88d37fb4

Contents?: true

Size: 1.26 KB

Versions: 6

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

require 'yaml'
require 'fileutils'
require_relative 'base_builder'

module R2OAS
  module Schema
    module V3
      class DocBuilder < BaseBuilder
        attr_accessor :oas_doc

        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

        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

          @oas_doc = result
          File.write(doc_save_file_path, result.to_yaml)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
r2-oas-0.3.4 lib/r2-oas/schema/v3/builder/doc_builder.rb
r2-oas-0.3.3 lib/r2-oas/schema/v3/builder/doc_builder.rb
r2-oas-0.3.2 lib/r2-oas/schema/v3/builder/doc_builder.rb
r2-oas-0.3.1 lib/r2-oas/schema/v3/builder/doc_builder.rb
r2-oas-0.3.0 lib/r2-oas/schema/v3/builder/doc_builder.rb
r2-oas-0.2.0 lib/r2-oas/schema/v3/builder/doc_builder.rb