Class: R2OAS::Schema::V3::Components::ObjectAnalyzer

Inherits:
BaseAnalyzer show all
Defined in:
lib/r2-oas/schema/v3/analyzer/components/object_analyzer.rb

Constant Summary

Constants inherited from Base

Base::SUPPORT_COMPONENTS_OBJECTS

Instance Method Summary collapse

Methods inherited from BaseAnalyzer

#generate_from_existing_schema

Methods included from R2OAS::Sortable

#deep_sort

Methods inherited from Base

#support_components_objects

Constructor Details

#initialize(before_schema_data, after_schema_data, options = {}) ⇒ ObjectAnalyzer

Returns a new instance of ObjectAnalyzer.



13
14
15
16
17
# File 'lib/r2-oas/schema/v3/analyzer/components/object_analyzer.rb', line 13

def initialize(before_schema_data, after_schema_data, options = {})
  super(before_schema_data, after_schema_data, options.except(:middle_category))
  @major_category = 'components'
  @middle_category = options[:middle_category]
end

Instance Method Details

#analyze_docsObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/r2-oas/schema/v3/analyzer/components/object_analyzer.rb', line 19

def analyze_docs
  diff_manager = ComponentsDiffManager.new(@before_schema_data, @after_schema_data, middle_category: @middle_category)
  diff_manager.process_by_using_diff_data do |schema_name, is_removed, is_added, is_leftovers, after_edited_data|
    file_manager = ComponentsFileManager.build("#/#{@major_category}/#{@middle_category}/#{schema_name}", :ref)
    save_file_path = file_manager.save_file_path(type: :relative)

    if is_removed && !is_added && !is_leftovers
      file_manager.delete
      logger.info "  Delete schema file: \t#{save_file_path}"
    else
      file_manager.save(after_edited_data.to_yaml)
      logger.info "  Write schema file: \t#{save_file_path}"
    end
  end
end