resque-status 0.4.0 → 0.4.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.
@@ -28,12 +28,13 @@ module Resque
28
28
  # This job would iterate num times updating the status as it goes. At the end
29
29
  # we update the status telling anyone listening to this job that its complete.
30
30
  module Status
31
- VERSION = '0.4.0'
31
+ VERSION = '0.4.1'
32
32
 
33
33
  autoload :Hash, 'resque/plugins/status/hash'
34
34
 
35
35
  # The error class raised when a job is killed
36
36
  class Killed < RuntimeError; end
37
+ class NotANumber < RuntimeError; end
37
38
 
38
39
  attr_reader :uuid, :options
39
40
 
@@ -76,11 +77,7 @@ module Resque
76
77
  # job_id = ExampleJob.create(:num => 100)
77
78
  #
78
79
  def create(options = {})
79
- if Resque.inline?
80
- self.perform(nil, options)
81
- else
82
- self.enqueue(self, options)
83
- end
80
+ self.enqueue(self, options)
84
81
  end
85
82
 
86
83
  # Adds a job of type <tt>klass<tt> to the queue with <tt>options<tt>.
@@ -124,11 +121,7 @@ module Resque
124
121
  def perform(uuid=nil, options = {})
125
122
  uuid ||= Resque::Plugins::Status::Hash.generate_uuid
126
123
  instance = new(uuid, options)
127
- if Resque.inline?
128
- instance.perform
129
- else
130
- instance.safe_perform!
131
- end
124
+ instance.safe_perform!
132
125
  instance
133
126
  end
134
127
 
@@ -198,6 +191,9 @@ module Resque
198
191
  # This will kill the job if it has been added to the kill list with
199
192
  # <tt>Resque::Plugins::Status::Hash.kill()</tt>
200
193
  def at(num, total, *messages)
194
+ if total.to_f <= 0.0
195
+ raise(NotANumber, "Called at() with total=#{total} which is not a number")
196
+ end
201
197
  tick({
202
198
  'num' => num,
203
199
  'total' => total
@@ -94,15 +94,15 @@ module Resque
94
94
 
95
95
  # Return the <tt>num</tt> most recent status/job UUIDs in reverse chronological order.
96
96
  def self.status_ids(range_start = nil, range_end = nil)
97
- unless range_end && range_start
98
- # Because we want a reverse chronological order, we need to get a range starting
99
- # by the higest negative number.
100
- redis.zrevrange(set_key, 0, -1) || []
101
- else
97
+ if range_end && range_start
102
98
  # Because we want a reverse chronological order, we need to get a range starting
103
99
  # by the higest negative number. The ordering is transparent from the API user's
104
100
  # perspective so we need to convert the passed params
105
101
  (redis.zrevrange(set_key, (range_start.abs), ((range_end || 1).abs)) || [])
102
+ else
103
+ # Because we want a reverse chronological order, we need to get a range starting
104
+ # by the higest negative number.
105
+ redis.zrevrange(set_key, 0, -1) || []
106
106
  end
107
107
  end
108
108
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "resque-status"
8
- s.version = "0.4.0"
8
+ s.version = "0.4.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Aaron Quint"]
12
- s.date = "2012-10-21"
12
+ s.date = "2013-01-26"
13
13
  s.description = "resque-status is an extension to the resque queue system that provides simple trackable jobs. It provides a Resque::Plugins::Status::Hash class which can set/get the statuses of jobs and a Resque::Plugins::Status class that when included provides easily trackable/killable jobs."
14
14
  s.email = "aaron@quirkey.com"
15
15
  s.extra_rdoc_files = [
@@ -38,12 +38,11 @@ at_exit do
38
38
  pid = `ps -e -o pid,command | grep [r]edis-test`.split(" ")[0]
39
39
  puts "Killing test redis server..."
40
40
  Process.kill("KILL", pid.to_i)
41
- `rm -f #{dir}/dump.rdb`
42
41
  exit exit_code
43
42
  end
44
43
 
45
44
  puts "Starting redis for testing at localhost:9736..."
46
- `redis-server #{dir}/redis-test.conf`
45
+ `rm -f #{dir}/dump.rdb && redis-server #{dir}/redis-test.conf`
47
46
  Resque.redis = 'localhost:9736/1'
48
47
 
49
48
  #### Fixtures
@@ -72,7 +71,6 @@ class ErrorJob
72
71
  end
73
72
 
74
73
  class KillableJob
75
-
76
74
  include Resque::Plugins::Status
77
75
 
78
76
  def perform
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque-status
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-21 00:00:00.000000000 Z
12
+ date: 2013-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: resque
@@ -88,6 +88,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
88
  - - ! '>='
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
+ segments:
92
+ - 0
93
+ hash: -3693274209748855583
91
94
  required_rubygems_version: !ruby/object:Gem::Requirement
92
95
  none: false
93
96
  requirements: