Module: ActiveWaiter::EnumerableJob

Extended by:
ActiveSupport::Concern
Defined in:
lib/active_waiter/enumerable_job.rb

Instance Method Summary collapse

Instance Method Details

#afterObject

called once



26
# File 'lib/active_waiter/enumerable_job.rb', line 26

def after;         end

#before(*_args) ⇒ Object

called once with arguments of ‘perform`



18
# File 'lib/active_waiter/enumerable_job.rb', line 18

def before(*_args); end

#enumerableObject

an Enumerable interface



20
# File 'lib/active_waiter/enumerable_job.rb', line 20

def enumerable; [] end

#foreach(_item) ⇒ Object

called 0-n times, depending on enumerable



24
# File 'lib/active_waiter/enumerable_job.rb', line 24

def foreach(_item); end

#items_countObject

called 0-n times, depending on enumerable



22
# File 'lib/active_waiter/enumerable_job.rb', line 22

def items_count; 1 end

#perform(*args) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/active_waiter/enumerable_job.rb', line 8

def perform(*args)
  before(*args)
  enumerable.each_with_index do |item, index|
    foreach(item)
    update_active_waiter(percentage: (100 * (index+1.to_f) / items_count))
  end
  after
  result
end

#resultObject

called once



28
# File 'lib/active_waiter/enumerable_job.rb', line 28

def result;        end