Class Delayed::Lifecycle
In: lib/delayed/lifecycle.rb
Parent: Object

Methods

after   around   before   new   run_callbacks  

Constants

EVENTS = { :enqueue => [:job], :execute => [:worker], :loop => [:worker], :perform => [:worker, :job], :error => [:worker, :job], :failure => [:worker, :job], :invoke_job => [:job]

Public Class methods

[Source]

    # File lib/delayed/lifecycle.rb, line 15
15:     def initialize
16:       @callbacks = EVENTS.keys.inject({}) { |hash, e| hash[e] = Callback.new; hash }
17:     end

Public Instance methods

[Source]

    # File lib/delayed/lifecycle.rb, line 23
23:     def after(event, &block)
24:       add(:after, event, &block)
25:     end

[Source]

    # File lib/delayed/lifecycle.rb, line 27
27:     def around(event, &block)
28:       add(:around, event, &block)
29:     end

[Source]

    # File lib/delayed/lifecycle.rb, line 19
19:     def before(event, &block)
20:       add(:before, event, &block)
21:     end

[Source]

    # File lib/delayed/lifecycle.rb, line 31
31:     def run_callbacks(event, *args, &block)
32:       missing_callback(event) unless @callbacks.has_key?(event)
33:       
34:       unless EVENTS[event].size == args.size
35:         raise ArgumentError, "Callback #{event} expects #{EVENTS[event].size} parameter(s): #{EVENTS[event].join(', ')}"
36:       end
37:       
38:       @callbacks[event].execute(*args, &block)
39:     end

[Validate]