resque_spec 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -100,6 +100,8 @@ And I write this spec using the `resque_spec` matcher
100
100
 
101
101
  (And I take note of the `before` block that is calling `reset!` for every spec)
102
102
 
103
+ *(There is also a **have_scheduled_at** matcher)*
104
+
103
105
  And I might write this as a Cucumber step
104
106
 
105
107
  Then /the (\w?) has (\w?) scheduled/ do |thing, method|
@@ -1,12 +1,33 @@
1
1
  require 'rspec'
2
2
 
3
- RSpec::Matchers.define :have_queued do |*expected_args|
4
- match do |actual|
5
- ResqueSpec.in_queue?(actual, *expected_args, :queue_name => @queue_name)
3
+ module InQueueHelper
4
+ def self.extended(klass)
5
+ klass.instance_eval do
6
+ chain :in do |queue_name|
7
+ self.queue_name = queue_name
8
+ end
9
+ end
6
10
  end
7
11
 
8
- chain :in do |queue_name|
9
- @queue_name = queue_name
12
+ private
13
+
14
+ attr_accessor :queue_name
15
+
16
+ def queue(actual)
17
+ if @queue_name
18
+ ResqueSpec.queue_by_name(@queue_name)
19
+ else
20
+ ResqueSpec.queue_for(actual)
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ RSpec::Matchers.define :have_queued do |*expected_args|
27
+ extend InQueueHelper
28
+
29
+ match do |actual|
30
+ queue(actual).any? { |entry| entry[:klass].to_s == actual.to_s && entry[:args] == expected_args }
10
31
  end
11
32
 
12
33
  failure_message_for_should do |actual|
@@ -23,12 +44,10 @@ RSpec::Matchers.define :have_queued do |*expected_args|
23
44
  end
24
45
 
25
46
  RSpec::Matchers.define :have_queue_size_of do |size|
26
- match do |actual|
27
- (@queue ||= ResqueSpec.queue_for(actual)).size == size
28
- end
47
+ extend InQueueHelper
29
48
 
30
- chain :in do |queue_name|
31
- @queue = ResqueSpec.queues[queue_name]
49
+ match do |actual|
50
+ queue(actual).size == size
32
51
  end
33
52
 
34
53
  failure_message_for_should do |actual|
@@ -46,7 +65,7 @@ end
46
65
 
47
66
  RSpec::Matchers.define :have_scheduled do |*expected_args|
48
67
  match do |actual|
49
- ResqueSpec.scheduled_anytime?(actual, *expected_args)
68
+ ResqueSpec.schedule_for(actual).any? { |entry| entry[:klass].to_s == actual.to_s && entry[:args] == expected_args }
50
69
  end
51
70
 
52
71
  failure_message_for_should do |actual|
@@ -64,7 +83,9 @@ end
64
83
 
65
84
  RSpec::Matchers.define :have_scheduled_at do |*expected_args|
66
85
  match do |actual|
67
- ResqueSpec.scheduled?(actual, *expected_args)
86
+ time = expected_args.first
87
+ other_args = expected_args[1..-1]
88
+ ResqueSpec.schedule_for(actual).any? { |entry| entry[:klass].to_s == actual.to_s && entry[:time] == time && entry[:args] == other_args }
68
89
  end
69
90
 
70
91
  failure_message_for_should do |actual|
@@ -2,14 +2,6 @@ require 'resque_spec'
2
2
 
3
3
  module ResqueSpec
4
4
 
5
- def scheduled?(klass, time, *args)
6
- schedule_for(klass).any? {|entry| entry[:klass].to_s == klass.to_s && entry[:time] == time && entry[:args] == args}
7
- end
8
-
9
- def scheduled_anytime?(klass, *args)
10
- schedule_for(klass).any? {|entry| entry[:klass].to_s == klass.to_s && entry[:args] == args}
11
- end
12
-
13
5
  def schedule_for(klass)
14
6
  name = "#{queue_name(klass)}_scheduled"
15
7
  queues[name]
@@ -24,4 +16,3 @@ module ResqueSpec
24
16
  end
25
17
 
26
18
  Resque.extend(ResqueSpec::ResqueScheduler)
27
-
@@ -3,14 +3,12 @@ require 'resque'
3
3
  module ResqueSpec
4
4
  extend self
5
5
 
6
- def in_queue?(klass, *args)
7
- options = args.last.is_a?(Hash) ? args.pop : {}
8
- queue = options[:queue_name] ? queues[options[:queue_name]] : queue_for(klass)
9
- queue.any? {|entry| entry[:klass].to_s == klass.to_s && entry[:args] == args}
6
+ def queue_by_name(name)
7
+ queues[name]
10
8
  end
11
9
 
12
10
  def queue_for(klass)
13
- queues[queue_name(klass)]
11
+ queue_by_name(queue_name(klass))
14
12
  end
15
13
 
16
14
  def queue_name(klass)
@@ -23,10 +21,6 @@ module ResqueSpec
23
21
  raise ::Resque::NoQueueError.new("Jobs must be placed onto a queue.")
24
22
  end
25
23
 
26
- def queue_size(klass)
27
- queue_for(klass).size
28
- end
29
-
30
24
  def queues
31
25
  @queues ||= Hash.new {|h,k| h[k] = []}
32
26
  end
@@ -1,3 +1,3 @@
1
1
  module ResqueSpec
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque_spec
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 9
4
5
  prerelease:
5
- version: 0.5.0
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 1
10
+ version: 0.5.1
6
11
  platform: ruby
7
12
  authors:
8
13
  - Les Hill
@@ -10,7 +15,7 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-03-16 00:00:00 -04:00
18
+ date: 2011-03-26 00:00:00 -07:00
14
19
  default_executable:
15
20
  dependencies:
16
21
  - !ruby/object:Gem::Dependency
@@ -21,6 +26,11 @@ dependencies:
21
26
  requirements:
22
27
  - - ">="
23
28
  - !ruby/object:Gem::Version
29
+ hash: 15
30
+ segments:
31
+ - 1
32
+ - 6
33
+ - 0
24
34
  version: 1.6.0
25
35
  type: :runtime
26
36
  version_requirements: *id001
@@ -32,6 +42,11 @@ dependencies:
32
42
  requirements:
33
43
  - - ">="
34
44
  - !ruby/object:Gem::Version
45
+ hash: 27
46
+ segments:
47
+ - 2
48
+ - 5
49
+ - 0
35
50
  version: 2.5.0
36
51
  type: :runtime
37
52
  version_requirements: *id002
@@ -67,17 +82,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
82
  requirements:
68
83
  - - ">="
69
84
  - !ruby/object:Gem::Version
85
+ hash: 3
86
+ segments:
87
+ - 0
70
88
  version: "0"
71
89
  required_rubygems_version: !ruby/object:Gem::Requirement
72
90
  none: false
73
91
  requirements:
74
92
  - - ">="
75
93
  - !ruby/object:Gem::Version
94
+ hash: 23
95
+ segments:
96
+ - 1
97
+ - 3
98
+ - 6
76
99
  version: 1.3.6
77
100
  requirements: []
78
101
 
79
102
  rubyforge_project:
80
- rubygems_version: 1.6.0
103
+ rubygems_version: 1.6.2
81
104
  signing_key:
82
105
  specification_version: 3
83
106
  summary: RSpec matchers for Resque