class Processor::Subroutine::Recursion

Public Class Methods

new(processor) click to toggle source
Calls superclass method
# File lib/processor/subroutine/recursion.rb, line 7
def initialize(processor)
  # recursion depends on counter subroutine
  processor = Counter.new(processor) unless processor.respond_to? :processed_records_count

  super processor
end

Public Instance Methods

process(*) click to toggle source
Calls superclass method
# File lib/processor/subroutine/recursion.rb, line 14
def process(*)
  recursion_preventer
  super
end

Private Instance Methods

max_records_to_process() click to toggle source
# File lib/processor/subroutine/recursion.rb, line 24
def max_records_to_process
  @max_records_to_process ||= (total_records * 1.1).round + 10
end
recursion_preventer() click to toggle source
# File lib/processor/subroutine/recursion.rb, line 20
def recursion_preventer
  raise Exception, "Processing fall into recursion. Check logs." if processed_records_count >= max_records_to_process
end