Sha256: 1cce5b0f370aca5f720a58ee2a0a9e3c7900c48ef059b9e90370fd2cc3978a2c

Contents?: true

Size: 1.28 KB

Versions: 12

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

require_relative 'base_cleaner'
require 'r2-oas/schema/v3/manager/file/path_item_file_manager'

module R2OAS
  module Schema
    module V3
      class ComponentsCleaner < BaseCleaner
        def initialize(options = {})
          super
          @components_file_paths = Dir.glob("#{schema_save_dir_path}/components/**/**.yml")
          @security_schemes_paths = Dir.glob("#{schema_save_dir_path}/components/securitySchemes/**/**.yml")
        end

        def clean_docs
          logger.info '[Clean OAS file (components)] start'
          super do |file_path|
            logger.info "  Delete schema file: \t#{file_path}"
          end
          logger.info '[Clean OAS file (components)] end'
        end

        private

        def clean_target_files
          used_file_paths = many_paths_file_paths.each_with_object([]) do |unit_paths_path, result|
            file_manager = PathItemFileManager.new(unit_paths_path, :full)
            components_file_paths_at_path = file_manager.descendants_ref_paths
            result.push(*components_file_paths_at_path)
          end.uniq

          all_file_paths - used_file_paths
        end

        def all_file_paths
          (@components_file_paths - @security_schemes_paths).uniq
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
r2-oas-0.5.0 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.4.1 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.4.0 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.3.4 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.3.3 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.3.2 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.3.1 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.3.0 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.2.0 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.1.3 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.1.2 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb
r2-oas-0.1.0 lib/r2-oas/schema/v3/cleaner/components_cleaner.rb