module StateManager::DelayedJob::State
Public Instance Methods
delayed_events()
click to toggle source
# File lib/state_manager/plugins/delayed_job.rb, line 20 def delayed_events self.class.specification.events.reject{|name,event|!event[:delay]} end
entered()
click to toggle source
# File lib/state_manager/plugins/delayed_job.rb, line 24 def entered delayed_events.each do |name, event| delay = if event[:delay].is_a? Proc instance_exec(&event[:delay]) elsif event[:delay].is_a? Symbol send event[:delay] else event[:delay] end delayed_event = DelayedEvent.new(path, event, state_manager) Delayed::Job.enqueue delayed_event, :run_at => delay.from_now end end
exited()
click to toggle source
# File lib/state_manager/plugins/delayed_job.rb, line 38 def exited # TODO: we currently just have logic inside the job itself which # skips the event if it is no longer relevant. This is not perfect. # Ideally we should cancel events in this method (requiring an # efficient way to do this without looping over all events). end