cascade 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,17 +4,29 @@ module Cascade
4
4
  def run_callbacks(action, job_spec)
5
5
  self.class.all_callbacks[action].each do |callback|
6
6
  result = if callback.is_a?(Symbol)
7
- send(callback, job_spec)
8
- else
9
- instance_exec job_spec, &callback
10
- end
7
+ send(callback, job_spec)
8
+ else
9
+ instance_exec job_spec, &callback
10
+ end
11
11
  return false unless result
12
12
  end
13
13
  true
14
14
  end
15
15
 
16
16
  module ClassMethods
17
- %w(before_queue before_run on_success on_error after_run).each do |action|
17
+ def run_callbacks(action, job_spec)
18
+ all_callbacks[action].each do |callback|
19
+ result = if callback.is_a?(Symbol)
20
+ send(callback, job_spec)
21
+ else
22
+ callback.call(job_spec)
23
+ end
24
+ return false unless result
25
+ end
26
+ true
27
+ end
28
+
29
+ %w(before_queue after_fork before_run on_success on_error after_run).each do |action|
18
30
  define_method(action) do |*args, &block|
19
31
  add_callback(action.to_sym, args[0], &block)
20
32
  end
@@ -40,6 +40,10 @@ module Cascade
40
40
  read, write = IO.pipe
41
41
 
42
42
  pid = fork do
43
+ job_class = job_spec.class_name.constantize
44
+ if job_class.respond_to?(:after_fork)
45
+ job_class.run_callbacks(:after_fork, job_spec)
46
+ end
43
47
  job = job_spec.job
44
48
  $0 = "Cascade::Job : #{name} : #{job.describe}"
45
49
  if run_job(job_spec, job)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cascade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
17
- requirement: &2152541900 !ruby/object:Gem::Requirement
17
+ requirement: &2156454080 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: '1.0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *2152541900
25
+ version_requirements: *2156454080
26
26
  description: ''
27
27
  email: andrew@andrewtimberlake.com
28
28
  executables: []