resque_spec 0.5.0 → 0.5.1

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
@@ -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