resque-scheduler 1.9.9 → 1.9.10

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8f0e55db383000283bc9f62c6f1426f08c413364
4
+ data.tar.gz: e9e155220dbf07b2af2f02d12350bedd15b96d92
5
+ SHA512:
6
+ metadata.gz: 23893a124cc859f8f9467d814252da43fb60096149a057b73fdf175c95def95dbcae3b94d002a05357cc4126eec316fd7a14d7c08af49559199ad23f8caa38bb
7
+ data.tar.gz: a34f09d54fe6127853e9c24e8dcbf1cea6c72b669a65940be84f7b039896ca55c08e638cfac302ee3b8bfeda2b57b5cced7584dc9ed741e173d195ddc2cf79cc
data/.gitignore CHANGED
@@ -1,3 +1,6 @@
1
1
  .bundle/
2
+ doc/
2
3
  pkg
3
4
  nbproject
5
+ Gemfile.lock
6
+ .rvmrc
data/.rubocop.yml ADDED
@@ -0,0 +1,120 @@
1
+ # This configuration was generated by `rubocop --auto-gen-config`.
2
+ # The point is for the user to remove these configuration records
3
+ # one by one as the offences are removed from the code base.
4
+
5
+ AccessControl:
6
+ Enabled: false
7
+
8
+ AlignParameters:
9
+ Enabled: false
10
+
11
+ AssignmentInCondition:
12
+ Enabled: false
13
+
14
+ CaseEquality:
15
+ Enabled: false
16
+
17
+ ClassVars:
18
+ Enabled: false
19
+
20
+ CollectionMethods:
21
+ Enabled: false
22
+
23
+ ColonMethodCall:
24
+ Enabled: false
25
+
26
+ CommentAnnotation:
27
+ Enabled: false
28
+
29
+ Documentation:
30
+ Enabled: false
31
+
32
+ EmptyLines:
33
+ Enabled: false
34
+
35
+ Encoding:
36
+ Enabled: false
37
+
38
+ FavorUnlessOverNegatedIf:
39
+ Enabled: false
40
+
41
+ FavorUntilOverNegatedWhile:
42
+ Enabled: false
43
+
44
+ HandleExceptions:
45
+ Enabled: false
46
+
47
+ HashSyntax:
48
+ Enabled: false
49
+
50
+ IfUnlessModifier:
51
+ Enabled: false
52
+
53
+ LineLength:
54
+ Enabled: false
55
+
56
+ Loop:
57
+ Enabled: false
58
+
59
+ MethodCallParentheses:
60
+ Enabled: false
61
+
62
+ MethodLength:
63
+ Enabled: false
64
+
65
+ ModuleFunction:
66
+ Enabled: false
67
+
68
+ NumericLiterals:
69
+ Enabled: false
70
+
71
+ ParenthesesAroundCondition:
72
+ Enabled: false
73
+
74
+ PerlBackrefs:
75
+ Enabled: false
76
+
77
+ RedundantBegin:
78
+ Enabled: false
79
+
80
+ RescueException:
81
+ Enabled: false
82
+
83
+ RescueModifier:
84
+ Enabled: false
85
+
86
+ SingleLineMethods:
87
+ Enabled: false
88
+
89
+ SpaceAfterComma:
90
+ Enabled: false
91
+
92
+ SpaceAroundBlockBraces:
93
+ Enabled: false
94
+
95
+ SpaceAroundEqualsInParameterDefault:
96
+ Enabled: false
97
+
98
+ SpaceAroundOperators:
99
+ Enabled: false
100
+
101
+ SpaceInsideHashLiteralBraces:
102
+ Enabled: false
103
+
104
+ SpecialGlobalVars:
105
+ Enabled: false
106
+
107
+ StringLiterals:
108
+ Enabled: false
109
+
110
+ TrailingBlankLines:
111
+ Enabled: false
112
+
113
+ TrailingWhitespace:
114
+ Enabled: false
115
+
116
+ TrivialAccessors:
117
+ Enabled: false
118
+
119
+ UselessAssignment:
120
+ Enabled: false
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ language: ruby
3
+ rvm:
4
+ - ree
5
+ - 1.9.3
6
+ - 2.0.0
7
+ script: bundle exec rake rubocop test
8
+ notifications:
9
+ email:
10
+ recipients: daniel.buch+resque-scheduler@gmail.com
data/Gemfile CHANGED
@@ -1,2 +1,3 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
+
2
3
  gemspec
data/HISTORY.md CHANGED
@@ -1,7 +1,9 @@
1
- ## 2.0.0 (???)
1
+ ## 1.9.10 (2013-09-19)
2
2
 
3
- * Dynamic schedule support (brianjlandau, davidyang)
4
- * Now depends on redis >=1.3
3
+ * Backported `#enqueue_at_with_queue`
4
+ * Locking to resque < 1.25.0
5
+ * Mocha setup compatibility
6
+ * Ruby 1.8 compatibility in scheduler tab when schedule keys are symbols
5
7
 
6
8
  ## 1.9.9 (2011-03-29)
7
9
 
data/Rakefile CHANGED
@@ -1,13 +1,41 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
1
+ require 'bundler/gem_tasks'
3
2
 
4
3
  $LOAD_PATH.unshift 'lib'
5
4
 
6
5
  task :default => :test
7
6
 
8
- desc "Run tests"
7
+ desc 'Run tests'
9
8
  task :test do
9
+ if RUBY_VERSION =~ /^1\.8/
10
+ unless ENV['SEED']
11
+ srand
12
+ ENV['SEED'] = (srand % 0xFFFF).to_s
13
+ end
14
+
15
+ $stdout.puts "Running with SEED=#{ENV['SEED']}"
16
+ srand Integer(ENV['SEED'])
17
+ elsif ENV['SEED']
18
+ ARGV += %W(--seed #{ENV['SEED']})
19
+ end
10
20
  Dir['test/*_test.rb'].each do |f|
11
21
  require File.expand_path(f)
12
22
  end
13
23
  end
24
+
25
+ desc 'Run rubocop'
26
+ task :rubocop do
27
+ unless RUBY_VERSION < '1.9'
28
+ sh('rubocop --config .rubocop.yml --format simple') { |r, _| r || abort }
29
+ end
30
+ end
31
+
32
+ begin
33
+ require 'rdoc/task'
34
+
35
+ Rake::RDocTask.new do |rd|
36
+ rd.main = 'README.md'
37
+ rd.rdoc_files.include('README.md', 'lib/**/*.rb')
38
+ rd.rdoc_dir = 'doc'
39
+ end
40
+ rescue LoadError
41
+ end
@@ -11,7 +11,7 @@ module Resque
11
11
 
12
12
  # If true, logs more stuff...
13
13
  attr_accessor :verbose
14
-
14
+
15
15
  # If set, produces no output
16
16
  attr_accessor :mute
17
17
 
@@ -39,7 +39,7 @@ module Resque
39
39
  def register_signal_handlers
40
40
  trap("TERM") { shutdown }
41
41
  trap("INT") { shutdown }
42
-
42
+
43
43
  begin
44
44
  trap('QUIT') { shutdown }
45
45
  trap('USR1') { kill_child }
@@ -96,7 +96,7 @@ module Resque
96
96
  # continue processing until there are no more ready timestamps
97
97
  end while !timestamp.nil?
98
98
  end
99
-
99
+
100
100
  # Enqueues all delayed jobs for a timestamp
101
101
  def enqueue_delayed_items_for_timestamp(timestamp)
102
102
  item = nil
@@ -140,7 +140,7 @@ module Resque
140
140
  constantize(job_klass).scheduled(queue, klass_name, *params)
141
141
  else
142
142
  Resque::Job.create(queue, klass_name, *params)
143
- end
143
+ end
144
144
  rescue
145
145
  log! "Failed to enqueue #{klass_name}:\n #{$!}"
146
146
  end
@@ -18,7 +18,7 @@ module ResqueScheduler
18
18
  #
19
19
  # :name can be anything and is used only to describe the scheduled job
20
20
  # :cron can be any cron scheduling string :job can be any resque job class
21
- # :every can be used in lieu of :cron. see rufus-scheduler's 'every' usage for
21
+ # :every can be used in lieu of :cron. see rufus-scheduler's 'every' usage for
22
22
  # valid syntax. If :cron is present it will take precedence over :every.
23
23
  # :class must be a resque worker class
24
24
  # :args can be any yaml which will be converted to a ruby literal and passed
@@ -45,12 +45,27 @@ module ResqueScheduler
45
45
  delayed_push(timestamp, job_to_hash(klass, args))
46
46
  end
47
47
 
48
+ # Identical to +enqueue_at+, except you can also specify
49
+ # a queue in which the job will be placed after the
50
+ # timestamp has passed.
51
+ def enqueue_at_with_queue(queue, timestamp, klass, *args)
52
+ validate_job!(klass)
53
+ delayed_push(timestamp, job_to_hash_with_queue(queue, klass, args))
54
+ end
55
+
48
56
  # Identical to enqueue_at but takes number_of_seconds_from_now
49
57
  # instead of a timestamp.
50
58
  def enqueue_in(number_of_seconds_from_now, klass, *args)
51
59
  enqueue_at(Time.now + number_of_seconds_from_now, klass, *args)
52
60
  end
53
61
 
62
+ # Identical to +enqueue_in+, except you can also specify
63
+ # a queue in which the job will be placed after the
64
+ # number of seconds has passed.
65
+ def enqueue_in_with_queue(queue, number_of_seconds_from_now, klass, *args)
66
+ enqueue_at_with_queue(queue, Time.now + number_of_seconds_from_now, klass, *args)
67
+ end
68
+
54
69
  # Used internally to stuff the item into the schedule sorted list.
55
70
  # +timestamp+ can be either in seconds or a datetime object
56
71
  # Insertion if O(log(n)).
@@ -131,18 +146,22 @@ module ResqueScheduler
131
146
  end
132
147
 
133
148
  def count_all_scheduled_jobs
134
- total_jobs = 0
149
+ total_jobs = 0
135
150
  Array(redis.zrange(:delayed_queue_schedule, 0, -1)).each do |timestamp|
136
151
  total_jobs += redis.llen("delayed:#{timestamp}").to_i
137
- end
152
+ end
138
153
  total_jobs
139
- end
154
+ end
140
155
 
141
156
  private
142
157
  def job_to_hash(klass, args)
143
158
  {:class => klass.to_s, :args => args, :queue => queue_from_class(klass)}
144
159
  end
145
160
 
161
+ def job_to_hash_with_queue(queue, klass, args)
162
+ {:class => klass.to_s, :args => args, :queue => queue}
163
+ end
164
+
146
165
  def clean_up_timestamp(key, timestamp)
147
166
  # If the list is empty, remove it.
148
167
  if 0 == redis.llen(key).to_i
@@ -1,7 +1,7 @@
1
1
 
2
2
  # Extend Resque::Server to add tabs
3
3
  module ResqueScheduler
4
-
4
+
5
5
  module Server
6
6
 
7
7
  def self.included(base)
@@ -28,7 +28,7 @@ module ResqueScheduler
28
28
  Resque::Scheduler.enqueue_from_config(config)
29
29
  redirect u("/overview")
30
30
  end
31
-
31
+
32
32
  get "/delayed" do
33
33
  # Is there a better way to specify alternate template locations with sinatra?
34
34
  erb File.read(File.join(File.dirname(__FILE__), 'server/views/delayed.erb'))
@@ -38,7 +38,7 @@ module ResqueScheduler
38
38
  # Is there a better way to specify alternate template locations with sinatra?
39
39
  erb File.read(File.join(File.dirname(__FILE__), 'server/views/delayed_timestamp.erb'))
40
40
  end
41
-
41
+
42
42
  post "/delayed/queue_now" do
43
43
  timestamp = params['timestamp']
44
44
  Resque::Scheduler.enqueue_delayed_items_for_timestamp(timestamp.to_i) if timestamp.to_i > 0
@@ -53,5 +53,5 @@ module ResqueScheduler
53
53
  Resque::Server.tabs << 'Delayed'
54
54
 
55
55
  end
56
-
57
- end
56
+
57
+ end
@@ -15,7 +15,7 @@
15
15
  <th>Queue</th>
16
16
  <th>Arguments</th>
17
17
  </tr>
18
- <% Resque.schedule.keys.sort.each do |name| %>
18
+ <% Resque.schedule.keys.map(&:to_s).sort.map(&:to_sym).each do |name| %>
19
19
  <% config = Resque.schedule[name] %>
20
20
  <tr>
21
21
  <td>
@@ -21,4 +21,4 @@ namespace :resque do
21
21
  end
22
22
  end
23
23
 
24
- end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module ResqueScheduler
2
- Version = '1.9.9'
2
+ VERSION = '1.9.10'
3
3
  end
@@ -1,29 +1,32 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require File.expand_path("../lib/resque_scheduler/version", __FILE__)
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'resque_scheduler/version'
3
5
 
4
- Gem::Specification.new do |s|
5
- s.name = "resque-scheduler"
6
- s.version = ResqueScheduler::Version
7
- s.platform = Gem::Platform::RUBY
8
- s.authors = ['Ben VandenBos']
9
- s.email = ['bvandenbos@gmail.com']
10
- s.homepage = "http://github.com/bvandenbos/resque-scheduler"
11
- s.summary = "Light weight job scheduling on top of Resque"
12
- s.description = %q{Light weight job scheduling on top of Resque.
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'resque-scheduler'
8
+ spec.version = ResqueScheduler::VERSION
9
+ spec.authors = ['Ben VandenBos']
10
+ spec.email = ['bvandenbos@gmail.com']
11
+ spec.homepage = 'http://github.com/resque/resque-scheduler'
12
+ spec.summary = 'Light weight job scheduling on top of Resque'
13
+ spec.description = %q{Light weight job scheduling on top of Resque.
13
14
  Adds methods enqueue_at/enqueue_in to schedule jobs in the future.
14
15
  Also supports queueing jobs on a fixed, cron-like schedule.}
15
-
16
- s.required_rubygems_version = ">= 1.3.6"
17
- s.add_development_dependency "bundler", ">= 1.0.0"
18
16
 
19
- s.files = `git ls-files`.split("\n")
20
- s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
21
- s.require_path = 'lib'
22
-
23
- s.add_runtime_dependency(%q<redis>, [">= 2.0.1"])
24
- s.add_runtime_dependency(%q<resque>, [">= 1.8.0"])
25
- s.add_runtime_dependency(%q<rufus-scheduler>, [">= 0"])
26
- s.add_development_dependency(%q<mocha>, [">= 0"])
27
- s.add_development_dependency(%q<rack-test>, [">= 0"])
28
-
17
+ spec.files = `git ls-files`.split("\n")
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^test/})
20
+ spec.require_path = ['lib']
21
+
22
+ spec.add_development_dependency 'bundler', '~> 1.3'
23
+ spec.add_development_dependency 'mocha'
24
+ spec.add_development_dependency 'rack-test'
25
+ spec.add_development_dependency 'rake'
26
+ spec.add_development_dependency 'json' if RUBY_VERSION < '1.9'
27
+ spec.add_development_dependency 'rubocop' unless RUBY_VERSION < '1.9'
28
+
29
+ spec.add_runtime_dependency 'redis', '>= 2.0.1'
30
+ spec.add_runtime_dependency 'resque', ['>= 1.8.0', '< 1.25.0']
31
+ spec.add_runtime_dependency 'rufus-scheduler', '>= 0'
29
32
  end
@@ -28,7 +28,34 @@ class Resque::DelayedQueueTest < Test::Unit::TestCase
28
28
  # Confirm the item came out correctly
29
29
  assert_equal('SomeIvarJob', item['class'], "Should be the same class that we queued")
30
30
  assert_equal(["path"], item['args'], "Should have the same arguments that we queued")
31
-
31
+
32
+ # And now confirm the keys are gone
33
+ assert(!Resque.redis.exists("delayed:#{timestamp.to_i}"))
34
+ assert_equal(0, Resque.redis.zcard(:delayed_queue_schedule), "delayed queue should be empty")
35
+ end
36
+
37
+ def test_enqueue_at_with_queue_inserts_into_correct_queue
38
+ timestamp = Time.now - 1 # 1 second ago (in the past, should come out right away)
39
+
40
+ assert_equal(0, Resque.redis.llen("delayed:#{timestamp.to_i}").to_i, "delayed queue should be empty to start")
41
+
42
+ Resque.enqueue_at_with_queue("critical", timestamp, SomeIvarJob, "path")
43
+
44
+ # Confirm the correct keys were added
45
+ assert_equal(1, Resque.redis.llen("delayed:#{timestamp.to_i}").to_i, "delayed queue should have one entry now")
46
+ assert_equal(1, Resque.redis.zcard(:delayed_queue_schedule), "The delayed_queue_schedule should have 1 entry now")
47
+
48
+ read_timestamp = Resque.next_delayed_timestamp
49
+
50
+ # Confirm the timestamp came out correctly
51
+ assert_equal(timestamp.to_i, read_timestamp, "The timestamp we pull out of redis should match the one we put in")
52
+ item = Resque.next_item_for_timestamp(read_timestamp)
53
+
54
+ # Confirm the item came out correctly
55
+ assert_equal('SomeIvarJob', item['class'], "Should be the same class that we queued")
56
+ assert_equal(["path"], item['args'], "Should have the same arguments that we queued")
57
+ assert_equal('critical', item['queue'], "Should have the queue that we asked for")
58
+
32
59
  # And now confirm the keys are gone
33
60
  assert(!Resque.redis.exists("delayed:#{timestamp.to_i}"))
34
61
  assert_equal(0, Resque.redis.zcard(:delayed_queue_schedule), "delayed queue should be empty")
@@ -141,10 +168,10 @@ class Resque::DelayedQueueTest < Test::Unit::TestCase
141
168
  Resque.expects(:queue_from_class).never # Should NOT need to load the class
142
169
  Resque::Scheduler.handle_delayed_items(t)
143
170
  end
144
-
171
+
145
172
  def test_enqueue_delayed_items_for_timestamp
146
173
  t = Time.now + 60
147
-
174
+
148
175
  Resque.enqueue_at(t, SomeIvarJob)
149
176
  Resque.enqueue_at(t, SomeIvarJob)
150
177
 
@@ -153,7 +180,7 @@ class Resque::DelayedQueueTest < Test::Unit::TestCase
153
180
  Resque.expects(:queue_from_class).never # Should NOT need to load the class
154
181
 
155
182
  Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
156
-
183
+
157
184
  # delayed queue for timestamp should be empty
158
185
  assert_equal(0, Resque.delayed_timestamp_peek(t, 0, 3).length)
159
186
  end
@@ -206,7 +233,7 @@ class Resque::DelayedQueueTest < Test::Unit::TestCase
206
233
  assert_equal(2, Resque.remove_delayed(SomeIvarJob, "bar"))
207
234
  assert_equal(1, Resque.delayed_queue_schedule_size)
208
235
  end
209
-
236
+
210
237
  def test_remove_specific_item_in_group_of_other_items_at_different_timestamps
211
238
  t = Time.now + 120
212
239
  Resque.enqueue_at(t, SomeIvarJob, "foo")
data/test/redis-test.conf CHANGED
@@ -112,4 +112,4 @@ databases 16
112
112
  # Glue small output buffers together in order to send small replies in a
113
113
  # single TCP packet. Uses a bit more CPU but most of the times it is a win
114
114
  # in terms of number of queries per second. Use 'yes' if unsure.
115
- glueoutputbuf yes
115
+ # glueoutputbuf yes
@@ -10,7 +10,7 @@ context "on GET to /schedule" do
10
10
  end
11
11
 
12
12
  context "on GET to /schedule with scheduled jobs" do
13
- setup do
13
+ setup do
14
14
  ENV['rails_env'] = 'production'
15
15
  Resque.schedule = {:some_ivar_job => {'cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp", 'rails_env' => 'production'},
16
16
  :some_other_job => {'queue' => 'high', 'class' => 'SomeOtherJob', 'args' => {:b => 'blah'}}}
@@ -14,7 +14,7 @@ context "scheduling jobs with arguments" do
14
14
  test "calls the worker without arguments when 'args' is blank in the config" do
15
15
  Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
16
16
  class: SomeIvarJob
17
- args:
17
+ args:
18
18
  YAML
19
19
  SomeIvarJob.expects(:perform).once.with()
20
20
  Resque.reserve('ivar').perform
@@ -29,7 +29,7 @@ class Resque::SchedulerTest < Test::Unit::TestCase
29
29
  Resque::Job.stubs(:create).once.returns(true).with(:ivar, 'SomeIvarJob', '/tmp')
30
30
  Resque::Scheduler.enqueue_from_config('cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp")
31
31
  end
32
-
32
+
33
33
  def test_enqueue_from_config_with_custom_class_job_in_the_resque_queue
34
34
  FakeJob.stubs(:scheduled).once.returns(true).with(:ivar, 'SomeIvarJob', '/tmp')
35
35
  Resque::Scheduler.enqueue_from_config('cron' => "* * * * *", 'class' => 'SomeIvarJob', 'custom_job_class' => 'Resque::SchedulerTest::FakeJob', 'args' => "/tmp")
data/test/test_helper.rb CHANGED
@@ -6,7 +6,7 @@ dir = File.dirname(File.expand_path(__FILE__))
6
6
 
7
7
  require 'rubygems'
8
8
  require 'test/unit'
9
- require 'mocha'
9
+ require 'mocha/setup'
10
10
  require 'resque'
11
11
  require File.join(dir, '../lib/resque_scheduler')
12
12
  $LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__)) + '/../lib'
@@ -39,11 +39,11 @@ at_exit do
39
39
 
40
40
  pid = `ps -e -o pid,command | grep [r]edis-test`.split(" ")[0]
41
41
  puts "Killing test redis server..."
42
- `rm -f #{dir}/dump.rdb`
43
42
  Process.kill("KILL", pid.to_i)
44
43
  exit exit_code
45
44
  end
46
45
 
46
+ `rm -f #{dir}/dump.rdb`
47
47
  puts "Starting redis for testing at localhost:9736..."
48
48
  `redis-server #{dir}/redis-test.conf`
49
49
  Resque.redis = 'localhost:9736'
@@ -59,13 +59,13 @@ def context(*args, &block)
59
59
  klass = Class.new(defined?(ActiveSupport::TestCase) ? ActiveSupport::TestCase : Test::Unit::TestCase) do
60
60
  def self.test(name, &block)
61
61
  define_method("test_#{name.gsub(/\W/,'_')}", &block) if block
62
- end
63
- def self.xtest(*args) end
64
- def self.setup(&block) define_method(:setup, &block) end
65
- def self.teardown(&block) define_method(:teardown, &block) end
66
- end
62
+ end
63
+ def self.xtest(*args) end
64
+ def self.setup(&block) define_method(:setup, &block) end
65
+ def self.teardown(&block) define_method(:teardown, &block) end
66
+ end
67
67
  (class << klass; self end).send(:define_method, :name) { name.gsub(/\W/,'_') }
68
- klass.class_eval &block
68
+ klass.class_eval(&block)
69
69
  end
70
70
 
71
71
  class SomeJob
metadata CHANGED
@@ -1,122 +1,147 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: resque-scheduler
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 9
8
- - 9
9
- version: 1.9.9
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.9.10
10
5
  platform: ruby
11
- authors:
6
+ authors:
12
7
  - Ben VandenBos
13
8
  autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2011-03-29 00:00:00 -07:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2013-09-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
22
21
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 1
30
- - 0
31
- - 0
32
- version: 1.0.0
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mocha
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
33
34
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: redis
37
35
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- segments:
44
- - 2
45
- - 0
46
- - 1
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rack-test
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: redis
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
47
89
  version: 2.0.1
48
90
  type: :runtime
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: resque
52
91
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- segments:
59
- - 1
60
- - 8
61
- - 0
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: 2.0.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: resque
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
62
103
  version: 1.8.0
104
+ - - <
105
+ - !ruby/object:Gem::Version
106
+ version: 1.25.0
63
107
  type: :runtime
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: rufus-scheduler
67
108
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- segments:
74
- - 0
75
- version: "0"
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - '>='
112
+ - !ruby/object:Gem::Version
113
+ version: 1.8.0
114
+ - - <
115
+ - !ruby/object:Gem::Version
116
+ version: 1.25.0
117
+ - !ruby/object:Gem::Dependency
118
+ name: rufus-scheduler
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
76
124
  type: :runtime
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: mocha
80
- prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- segments:
87
- - 0
88
- version: "0"
89
- type: :development
90
- version_requirements: *id005
91
- - !ruby/object:Gem::Dependency
92
- name: rack-test
93
125
  prerelease: false
94
- requirement: &id006 !ruby/object:Gem::Requirement
95
- none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- segments:
100
- - 0
101
- version: "0"
102
- type: :development
103
- version_requirements: *id006
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - '>='
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
104
131
  description: |-
105
132
  Light weight job scheduling on top of Resque.
106
133
  Adds methods enqueue_at/enqueue_in to schedule jobs in the future.
107
134
  Also supports queueing jobs on a fixed, cron-like schedule.
108
- email:
135
+ email:
109
136
  - bvandenbos@gmail.com
110
137
  executables: []
111
-
112
138
  extensions: []
113
-
114
139
  extra_rdoc_files: []
115
-
116
- files:
140
+ files:
117
141
  - .gitignore
142
+ - .rubocop.yml
143
+ - .travis.yml
118
144
  - Gemfile
119
- - Gemfile.lock
120
145
  - HISTORY.md
121
146
  - LICENSE
122
147
  - README.markdown
@@ -137,39 +162,33 @@ files:
137
162
  - test/scheduler_args_test.rb
138
163
  - test/scheduler_test.rb
139
164
  - test/test_helper.rb
140
- has_rdoc: true
141
- homepage: http://github.com/bvandenbos/resque-scheduler
165
+ homepage: http://github.com/resque/resque-scheduler
142
166
  licenses: []
143
-
167
+ metadata: {}
144
168
  post_install_message:
145
169
  rdoc_options: []
146
-
147
- require_paths:
148
- - lib
149
- required_ruby_version: !ruby/object:Gem::Requirement
150
- none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- segments:
155
- - 0
156
- version: "0"
157
- required_rubygems_version: !ruby/object:Gem::Requirement
158
- none: false
159
- requirements:
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- segments:
163
- - 1
164
- - 3
165
- - 6
166
- version: 1.3.6
170
+ require_paths:
171
+ - - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
167
182
  requirements: []
168
-
169
183
  rubyforge_project:
170
- rubygems_version: 1.3.7
184
+ rubygems_version: 2.0.3
171
185
  signing_key:
172
- specification_version: 3
186
+ specification_version: 4
173
187
  summary: Light weight job scheduling on top of Resque
174
- test_files: []
175
-
188
+ test_files:
189
+ - test/delayed_queue_test.rb
190
+ - test/redis-test.conf
191
+ - test/resque-web_test.rb
192
+ - test/scheduler_args_test.rb
193
+ - test/scheduler_test.rb
194
+ - test/test_helper.rb
data/Gemfile.lock DELETED
@@ -1,52 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- resque-scheduler (1.9.7)
5
- redis (>= 2.0.1)
6
- resque (>= 1.8.0)
7
- rufus-scheduler
8
-
9
- GEM
10
- remote: http://rubygems.org/
11
- specs:
12
- git (1.2.5)
13
- jeweler (1.5.1)
14
- bundler (~> 1.0.0)
15
- git (>= 1.2.5)
16
- rake
17
- json (1.4.6)
18
- mocha (0.9.9)
19
- rake
20
- rack (1.2.1)
21
- rack-test (0.5.6)
22
- rack (>= 1.0)
23
- rake (0.8.7)
24
- redis (2.1.1)
25
- redis-namespace (0.8.0)
26
- redis (< 3.0.0)
27
- resque (1.10.0)
28
- json (~> 1.4.6)
29
- redis-namespace (~> 0.8.0)
30
- sinatra (>= 0.9.2)
31
- vegas (~> 0.1.2)
32
- rufus-scheduler (2.0.7)
33
- tzinfo
34
- sinatra (1.1.0)
35
- rack (~> 1.1)
36
- tilt (~> 1.1)
37
- tilt (1.1)
38
- tzinfo (0.3.23)
39
- vegas (0.1.8)
40
- rack (>= 1.0.0)
41
-
42
- PLATFORMS
43
- ruby
44
-
45
- DEPENDENCIES
46
- jeweler
47
- mocha
48
- rack-test
49
- redis (>= 2.0.1)
50
- resque (>= 1.8.0)
51
- resque-scheduler!
52
- rufus-scheduler