resque_spec 0.9.3 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -99,6 +99,31 @@ You can check the size of the queue in your specs too.
99
99
  end
100
100
  end
101
101
 
102
+ Turning off ResqueSpec and calling directly to Resque
103
+ -----------------------------------------------------
104
+
105
+ Occasionally, you want to run your specs directly against Resque instead of
106
+ ResqueSpec. For one at a time use, pass a block to the `without_resque_spec`
107
+ helper:
108
+
109
+ describe "#recalculate" do
110
+ it "recalculates the persons score" do
111
+ without_resque_spec do
112
+ person.recalculate
113
+ end
114
+ ... assert recalculation after job done
115
+ end
116
+ end
117
+
118
+ Or you can manage when ResqueSpec is disabled by flipping the
119
+ `ResqueSpec.disable_ext` flag:
120
+
121
+ # disable ResqueSpec
122
+ ResqueSpec.disable_ext = true
123
+
124
+ You will most likely (but not always, see the Resque docs) need to ensure that
125
+ you have `redis` running.
126
+
102
127
  ResqueMailer with Specs
103
128
  =======================
104
129
 
@@ -317,6 +342,7 @@ Contributors
317
342
  * (@alexeits) : fix matcher in bug with RSpec 2.8.0
318
343
  * (@ToadJamb) : encode/decode of Resque job arguments
319
344
  * Mateusz Konikowski (@mkonikowski) : support for anything matcher
345
+ * Mathieu Ravaux (@mathieuravaux) : without_resque_spec support
320
346
 
321
347
  Copyright
322
348
  =========
@@ -7,6 +7,7 @@ module ResqueSpec
7
7
  extend self
8
8
 
9
9
  attr_accessor :inline
10
+ attr_accessor :disable_ext
10
11
 
11
12
  def dequeue(queue_name, klass, *args)
12
13
  queue_by_name(queue_name).delete_if do |job|
@@ -2,13 +2,22 @@ require 'resque'
2
2
 
3
3
  module Resque
4
4
  class Job
5
+ class << self
6
+ alias :create_without_resque_spec :create
7
+ alias :destroy_without_resque_spec :destroy
8
+ end
9
+
5
10
  def self.create(queue, klass, *args)
11
+ return create_without_resque_spec(queue, klass, *args) if ResqueSpec.disable_ext
12
+
6
13
  raise ::Resque::NoQueueError.new("Jobs must be placed onto a queue.") if !queue
7
14
  raise ::Resque::NoClassError.new("Jobs must be given a class.") if klass.to_s.empty?
8
15
  ResqueSpec.enqueue(queue, klass, *args)
9
16
  end
10
17
 
11
18
  def self.destroy(queue, klass, *args)
19
+ return destroy_without_resque_spec(queue, klass, *args) if ResqueSpec.disable_ext
20
+
12
21
  raise ::Resque::NoQueueError.new("Jobs must have been placed onto a queue.") if !queue
13
22
  raise ::Resque::NoClassError.new("Jobs must have been given a class.") if klass.to_s.empty?
14
23
 
@@ -20,11 +29,19 @@ module Resque
20
29
  end
21
30
  end
22
31
 
32
+ alias :enqueue_without_resque_spec :enqueue
33
+ alias :enqueue_to_without_resque_spec :enqueue_to if Resque.respond_to? :enqueue_to
34
+ alias :reserve_without_resque_spec :reserve
35
+
23
36
  def enqueue(klass, *args)
37
+ return enqueue_without_resque_spec(klass, *args) if ResqueSpec.disable_ext
38
+
24
39
  enqueue_to(queue_from_class(klass), klass, *args)
25
40
  end
26
41
 
27
42
  def enqueue_to(queue, klass, *args)
43
+ return enqueue_to_without_resque_spec(queue, klass, *args) if ResqueSpec.disable_ext
44
+
28
45
  if ResqueSpec.inline
29
46
  return if run_before_enqueue(klass, *args)
30
47
  run_after_enqueue(klass, *args)
@@ -38,6 +55,8 @@ module Resque
38
55
  end
39
56
 
40
57
  def reserve(queue_name)
58
+ return reserve_without_resque_spec(queue_name) if ResqueSpec.disable_ext
59
+
41
60
  ResqueSpec.pop(queue_name)
42
61
  end
43
62
 
@@ -9,5 +9,15 @@ module ResqueSpec
9
9
  ResqueSpec.inline = false
10
10
  end
11
11
  end
12
+
13
+ def without_resque_spec
14
+ begin
15
+ ResqueSpec.disable_ext = true
16
+ yield
17
+ ensure
18
+ ResqueSpec.disable_ext = false
19
+ end
20
+ end
21
+
12
22
  end
13
23
  end
@@ -2,15 +2,34 @@ require 'resque_spec'
2
2
 
3
3
  module ResqueSpec
4
4
  module SchedulerExt
5
+ def self.extended(klass)
6
+ if klass.respond_to? :enqueue_at
7
+ klass.instance_eval do
8
+ alias :enqueue_at_without_resque_spec :enqueue_at
9
+ alias :enqueue_in_without_resque_spec :enqueue_in
10
+ alias :remove_delayed_without_resque_spec :remove_delayed
11
+ end
12
+ end
13
+ klass.extend(ResqueSpec::SchedulerExtMethods)
14
+ end
15
+ end
16
+
17
+ module SchedulerExtMethods
5
18
  def enqueue_at(time, klass, *args)
19
+ return enqueue_at_without_resque_spec(time, klass, *args) if ResqueSpec.disable_ext && respond_to?(:enqueue_at_without_resque_spec)
20
+
6
21
  ResqueSpec.enqueue_at(time, klass, *args)
7
22
  end
8
23
 
9
24
  def enqueue_in(time, klass, *args)
25
+ return enqueue_in_without_resque_spec(time, klass, *args) if ResqueSpec.disable_ext && respond_to?(:enqueue_in_without_resque_spec)
26
+
10
27
  ResqueSpec.enqueue_in(time, klass, *args)
11
28
  end
12
29
 
13
30
  def remove_delayed(klass, *args)
31
+ return remove_delayed_without_resque_spec(klass, *args) if ResqueSpec.disable_ext && respond_to?(:remove_delayed_without_resque_spec)
32
+
14
33
  ResqueSpec.remove_delayed(klass, *args)
15
34
  end
16
35
  end
@@ -1,3 +1,3 @@
1
1
  module ResqueSpec
2
- VERSION = "0.9.3"
2
+ VERSION = "0.10.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.10.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-03 00:00:00.000000000Z
12
+ date: 2012-04-16 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: resque
16
- requirement: &70150271545920 !ruby/object:Gem::Requirement
16
+ requirement: &70234346214680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.19.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70150271545920
24
+ version_requirements: *70234346214680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70150271544920 !ruby/object:Gem::Requirement
27
+ requirement: &70234346213660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,21 @@ dependencies:
32
32
  version: 2.5.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70150271544920
35
+ version_requirements: *70234346213660
36
+ - !ruby/object:Gem::Dependency
37
+ name: resque-scheduler
38
+ requirement: &70234346212620 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70234346212620
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: ruby-debug19
38
- requirement: &70150271544240 !ruby/object:Gem::Requirement
49
+ requirement: &70234346211520 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: '0'
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70150271544240
57
+ version_requirements: *70234346211520
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: timecop
49
- requirement: &70150271542700 !ruby/object:Gem::Requirement
60
+ requirement: &70234346210280 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: '0'
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *70150271542700
68
+ version_requirements: *70234346210280
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: rake
60
- requirement: &70150271541580 !ruby/object:Gem::Requirement
71
+ requirement: &70234346209180 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ! '>='
@@ -65,7 +76,7 @@ dependencies:
65
76
  version: '0'
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *70150271541580
79
+ version_requirements: *70234346209180
69
80
  description: RSpec matchers for Resque
70
81
  email: leshill@gmail.com
71
82
  executables: []