class ActiveRecordBlockMatchers::IdStrategy

Attributes

block[R]

Public Class Methods

new(block) click to toggle source
# File lib/active_record_block_matchers/strategies/id_strategy.rb, line 4
def initialize(block)
  @block = block
end

Public Instance Methods

new_records(classes) click to toggle source
# File lib/active_record_block_matchers/strategies/id_strategy.rb, line 8
def new_records(classes)
  ids_before = classes.each_with_object({}) do |klass, ids_before|
    ids_before[klass] = klass.select("MAX(#{column_name}) as max_id").take.try(:max_id) || 0
  end

  block.call

  classes.each_with_object({}) do |klass, new_records|
    id_before = ids_before[klass]
    new_records[klass] = klass.where("#{column_name} > ?", id_before).to_a
  end
end

Private Instance Methods

column_name() click to toggle source
# File lib/active_record_block_matchers/strategies/id_strategy.rb, line 25
def column_name
  @column_name ||= ActiveRecordBlockMatchers::Config.id_column_name
end