class R2OAS::Schema::V3::BaseArrayDiffManager

Public Class Methods

new(before_schema_data, after_schema_data) click to toggle source
Calls superclass method
# File lib/r2-oas/schema/v3/manager/diff/base_array_diff_manager.rb, line 9
def initialize(before_schema_data, after_schema_data)
  super
  @major_category = 'base'
  @judge_key      = ''
end

Public Instance Methods

after_target_data() click to toggle source
# File lib/r2-oas/schema/v3/manager/diff/base_array_diff_manager.rb, line 32
def after_target_data
  schema_data_at(@after_schema_data[@major_category])
end
process_by_using_diff_data() { |schema_data_at(result)| ... } click to toggle source
# File lib/r2-oas/schema/v3/manager/diff/base_array_diff_manager.rb, line 15
def process_by_using_diff_data
  before_data_at_major         = @before_schema_data[@major_category]
  after_data_at_major          = @after_schema_data[@major_category]
  after_schema_data_grouped_by = schema_data_grouped_by_judge_key(after_data_at_major)

  result = before_data_at_major.map do |data|
    judge_name = data[@judge_key]
    if judge_name.in? after_schema_data_grouped_by.keys
      after_schema_data_grouped_by[judge_name]
    else
      data
    end
  end

  yield schema_data_at(result) if block_given?
end

Private Instance Methods

schema_data_at(data) click to toggle source
# File lib/r2-oas/schema/v3/manager/diff/base_array_diff_manager.rb, line 44
def schema_data_at(data)
  {
    @major_category => data
  }
end
schema_data_grouped_by_judge_key(arr) click to toggle source
# File lib/r2-oas/schema/v3/manager/diff/base_array_diff_manager.rb, line 38
def schema_data_grouped_by_judge_key(arr)
  arr.each_with_object({}) do |data, result|
    result.deep_merge!(data[@judge_key] => data)
  end
end
to_boolean(diff) click to toggle source
# File lib/r2-oas/schema/v3/manager/diff/base_array_diff_manager.rb, line 50
def to_boolean(diff)
  if diff.present?
    diff[@major_category].present?
  else
    false
  end
end