class R2OAS::Schema::V3::Analyzer

Public Class Methods

new(before_schema_data, after_schema_data, options = {}) click to toggle source
Calls superclass method
# File lib/r2-oas/schema/v3/analyzer.rb, line 13
def initialize(before_schema_data, after_schema_data, options = {})
  super
  @path_analyzer       = PathAnalyzer.new(@before_schema_data, @after_schema_data, options)
  @tag_analyzer        = TagAnalyzer.new(@after_schema_data, options)
  @components_analyzer = ComponentsAnalyzer.new(@before_schema_data, @after_schema_data, options)
end

Public Instance Methods

analyze_docs() click to toggle source
# File lib/r2-oas/schema/v3/analyzer.rb, line 20
def analyze_docs
  logger.info '[Analyze OAS file] start'
  @after_schema_data.keys.each do |schema_name|
    case schema_name
    when 'paths'
      logger.info '[Analyze OAS file (paths)] start'
      @path_analyzer.analyze_docs
      logger.info '[Analyze OAS file (paths)] end'
    when 'tags'
      logger.info '[Analyze OAS file (tags)] start'
      @tag_analyzer.analyze_docs
      logger.info '[Analyze OAS file (tags)] end'
    when 'components'
      logger.info '[Analyze OAS file (components)] start'
      @components_analyzer.analyze_docs
      logger.info '[Analyze OAS file (components)] end'
    else
      save_schema_when(schema_name)
    end
  end
  logger.info '[Analyze OAS file] end'
end

Private Instance Methods

save_schema_when(schema_name) click to toggle source
# File lib/r2-oas/schema/v3/analyzer.rb, line 45
def save_schema_when(schema_name)
  file_manager = FileManager.new(schema_name, :relative)
  data = @after_schema_data.slice(schema_name)
  case @type
  when :edited
    file_manager.save_after_deep_merge(data)
  when :existing
    file_manager.save(data.to_yaml)
  end
end