resque-scheduler 2.2.0 → 4.10.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +12 -0
  3. data/.github/funding.yml +4 -0
  4. data/.github/workflows/codeql-analysis.yml +59 -0
  5. data/.github/workflows/rubocop.yml +27 -0
  6. data/.github/workflows/ruby.yml +81 -0
  7. data/AUTHORS.md +31 -0
  8. data/CHANGELOG.md +539 -0
  9. data/CODE_OF_CONDUCT.md +74 -0
  10. data/Gemfile +26 -2
  11. data/LICENSE +1 -1
  12. data/README.md +423 -91
  13. data/Rakefile +12 -35
  14. data/exe/resque-scheduler +5 -0
  15. data/lib/resque/scheduler/cli.rb +147 -0
  16. data/lib/resque/scheduler/configuration.rb +102 -0
  17. data/lib/resque/scheduler/delaying_extensions.rb +371 -0
  18. data/lib/resque/scheduler/env.rb +85 -0
  19. data/lib/resque/scheduler/extension.rb +13 -0
  20. data/lib/resque/scheduler/failure_handler.rb +11 -0
  21. data/lib/resque/scheduler/lock/base.rb +12 -3
  22. data/lib/resque/scheduler/lock/basic.rb +4 -5
  23. data/lib/resque/scheduler/lock/resilient.rb +52 -43
  24. data/lib/resque/scheduler/lock.rb +2 -1
  25. data/lib/resque/scheduler/locking.rb +104 -0
  26. data/lib/resque/scheduler/logger_builder.rb +83 -0
  27. data/lib/resque/scheduler/plugin.rb +31 -0
  28. data/lib/resque/scheduler/scheduling_extensions.rb +142 -0
  29. data/lib/{resque_scheduler → resque/scheduler}/server/views/delayed.erb +23 -8
  30. data/lib/resque/scheduler/server/views/delayed_schedules.erb +20 -0
  31. data/lib/{resque_scheduler → resque/scheduler}/server/views/delayed_timestamp.erb +1 -1
  32. data/lib/resque/scheduler/server/views/scheduler.erb +58 -0
  33. data/lib/resque/scheduler/server/views/search.erb +69 -0
  34. data/lib/resque/scheduler/server/views/search_form.erb +4 -0
  35. data/lib/resque/scheduler/server.rb +268 -0
  36. data/lib/resque/scheduler/signal_handling.rb +40 -0
  37. data/lib/resque/scheduler/tasks.rb +25 -0
  38. data/lib/resque/scheduler/util.rb +39 -0
  39. data/lib/resque/scheduler/version.rb +7 -0
  40. data/lib/resque/scheduler.rb +333 -149
  41. data/lib/resque-scheduler.rb +4 -0
  42. data/resque-scheduler.gemspec +56 -20
  43. metadata +205 -104
  44. data/.gitignore +0 -8
  45. data/.rubocop.yml +0 -120
  46. data/.travis.yml +0 -10
  47. data/HISTORY.md +0 -180
  48. data/lib/resque/scheduler_locking.rb +0 -90
  49. data/lib/resque_scheduler/logger_builder.rb +0 -51
  50. data/lib/resque_scheduler/plugin.rb +0 -25
  51. data/lib/resque_scheduler/server/views/scheduler.erb +0 -44
  52. data/lib/resque_scheduler/server.rb +0 -92
  53. data/lib/resque_scheduler/tasks.rb +0 -40
  54. data/lib/resque_scheduler/version.rb +0 -3
  55. data/lib/resque_scheduler.rb +0 -355
  56. data/script/migrate_to_timestamps_set.rb +0 -14
  57. data/tasks/resque_scheduler.rake +0 -2
  58. data/test/delayed_queue_test.rb +0 -383
  59. data/test/redis-test.conf +0 -108
  60. data/test/resque-web_test.rb +0 -116
  61. data/test/scheduler_args_test.rb +0 -156
  62. data/test/scheduler_hooks_test.rb +0 -23
  63. data/test/scheduler_locking_test.rb +0 -180
  64. data/test/scheduler_setup_test.rb +0 -59
  65. data/test/scheduler_test.rb +0 -256
  66. data/test/support/redis_instance.rb +0 -129
  67. data/test/test_helper.rb +0 -92
  68. /data/lib/{resque_scheduler → resque/scheduler}/server/views/requeue-params.erb +0 -0
data/CHANGELOG.md ADDED
@@ -0,0 +1,539 @@
1
+ # Change Log
2
+
3
+ **ATTN**: This project uses [semantic versioning](http://semver.org/).
4
+
5
+ ## [4.10.2] - 2023-12-15
6
+ ### Fixed
7
+ * Finish fixing CVE-2022-44303, XSS in delayed_schedules by @PatrickTulskie in #783
8
+
9
+ ## [4.10.1] - 2023-12-15
10
+ ### Fixed
11
+ * Fix json dump crasher with JSON 2.7.0+ by @PatrickTulskie in #781
12
+ * Fix for #761, reflected XSS in delayed_schedules.erb by @PatrickTulskie in #780
13
+
14
+ ## [4.10.0] - 2023-08-20
15
+ ### Added
16
+ * Add logfmt option for logging output (#763)
17
+
18
+ ### Fixed
19
+ * Rubocop Fixes (#771)
20
+
21
+ ## [4.9.0] - 2023-05-31
22
+ ### Changed
23
+ - Adding batching to re-queuing for timestamp by @brennen-stripe in #767
24
+ - Use non-deprecated form of Redis.sadd/srem by @irvingreid in #752
25
+ - Prompt for confirmation on 'Clear Delayed Jobs' by @mishina2228 in #754
26
+ - Address some deprecation warnings in the test suite and with srem/lrem pipelined usage by @PatrickTulskie in #770
27
+
28
+ ### Fixed
29
+ - Update CI matrix and fix tests by @mishina2228 in #766
30
+
31
+ ## [4.8.0] - 2023-27-1
32
+ - Replace deprecated Socket.gethostname with Addrinfo.getaddrinfo to fix deprecation warnings (#753)
33
+
34
+ ## [4.7.0] - 2022-10-6
35
+ ### Fixed
36
+ - Fix tests for redis-rb 5.0 (#757)
37
+ - Use Resque::DataStore#reconnect for redis-rb 5.0 compat (#757)
38
+ - Test suite runs `flushall` to prevent flakiness (#757)
39
+
40
+ ## [4.6.0] - 2022-08-04
41
+ ### Changed
42
+ - Remove support for Ruby < 2.3
43
+ - Configuration to use a set of truthy values to enable boolean settings instead of simply existence
44
+ - Add `delay_or_enqueue_at` for delaying existing jobs or creating a new job(#645)
45
+ - Fix deprecated uses of Redis#pipelined
46
+ - Fix reading configuration from environment for boolean values (#735)
47
+ - Unblock rufus-scheduler lock on lower than 3.7 by fixing scheduler shutdown (#736)
48
+ - Removed testing against jruby (resque doesn't test against jruby)
49
+
50
+ ## [4.5.0] - 2021-09-25
51
+ ### Added
52
+ - Support Ruby 3
53
+ - Add optional argument to `remove_schedule` to control reloading of the schedule
54
+
55
+ ### Fixed
56
+ - Fix XSS vulnerability on the `/delayed/search` page
57
+ - Ensure that jobs are directly created for jobs enqueued at `Time.now`
58
+ - Fix queuing to custom job queues in `enqueue_delayed_selection`
59
+ - Ensure `before_enqueue` and `after_enqueue` callbacks are called in all cases of queuing a job
60
+ - Fix redis error when running resque-scheduler without Redis
61
+
62
+ ### Changed
63
+ - Change CI from Travis to GitHub Actions
64
+ - Only allow rufus-scheduler versions lower than 3.7
65
+ - Update vagrant configuration
66
+
67
+ ## [4.4.0] - 2019-04-11
68
+ ### Added
69
+ - Support Resque 2
70
+ - Support redis-rb 4
71
+ - Support Ruby 2.5
72
+
73
+ ### Fixed
74
+ - Redis timeouts no longer crash the scheduler process
75
+ - Fix race condition when running multiple schedulers
76
+ - Fix setting the `poll_sleep_amount` option
77
+ - Escape class names in resque-web /delayed URLs
78
+
79
+ ### Changed
80
+ - Addressed redis-namespace deprecation warnings
81
+ - Ensure `enqueue_in` args are Numeric, catching a common issue passing `ActiveSupport::Duration`
82
+
83
+ ## [4.3.1] - 2017-11-20
84
+ ### Changed
85
+ - Add support and testing for ruby 2.4
86
+ - Change log format and file name
87
+ - Drop testing on ruby 1.9.3
88
+ - `Lock::Resilient`: Refresh lua script sha if it does not exist in redis server
89
+
90
+ ### Fixed
91
+ - Reporting version via `resque-scheduler --version`
92
+ - Class name escaping in `/delayed` view
93
+
94
+ ## [4.3.0] - 2016-06-26
95
+ ### Added
96
+ - Windows testing on Appveyor
97
+ - Code of Conduct
98
+
99
+ ### Changed
100
+ - Silence output by default when daemonizing
101
+ - Update vagrant setup
102
+ - Update gem metadata per latest Bundler defaults
103
+
104
+ ## [4.2.1] - 2016-06-08
105
+ ### Added
106
+ - Docs improvements
107
+
108
+ ### Changed
109
+ - Optimization of `find_delayed_selection`
110
+ - More defensive code around redis disconnects
111
+ - Only trap existing signals on given platform
112
+ - RuboCop auto-fixes
113
+ - Dependency updates
114
+
115
+ ## [4.2.0] - 2016-04-29
116
+ ### Added
117
+ - Index column to scheduler tab
118
+ - Failure hook support for better extensibility
119
+
120
+ ### Changed
121
+ - Clean up and simplify the scheduling extension
122
+ - Make `Resque::Scheduler.logger` accessible to user
123
+ - Default failure handler now outputs stacktrace
124
+ - Update rufus-scheduler
125
+
126
+ ### Fixed
127
+ - Displaying schedules appropriate to the `env` in scheduler UI
128
+ - A race condition in concurrent restarts
129
+
130
+ ## [4.1.0] - 2016-02-10
131
+ ### Added
132
+ - View helper to cut down on repetition
133
+ - `Resque.(find|enqueue)_delayed_selection` methods to complement
134
+ `Resque.remove_delayed_selection`
135
+
136
+ ### Changed
137
+ - Leave undefined env vars unset in internal options hash
138
+ - Insulate checking `Rails.env`
139
+ - Documentation updates and typo fixes
140
+
141
+ ### Fixed
142
+ - Check thread life only if present
143
+
144
+ ## [4.0.0] - 2014-12-21
145
+ ### Added
146
+ - Show current master in the web UI
147
+
148
+ ### Changed
149
+ - Bump rufus-scheduler dependency to `~> 3.0`
150
+ - Address warning from redis-namespace related to `#unwatch`
151
+ - Documentation updates
152
+
153
+ ### Fixed
154
+ - Bugfix related to schedule check when no jobs are in the queue
155
+
156
+ ## [3.1.0] - 2014-12-21
157
+ ### Added
158
+ - Note in README.md about production redis deployment configuration
159
+ - Better PID file cleanup
160
+ - Option to filter by job class in `Resque.remove_delayed_selection`
161
+ - Tell-don't-ask with `Resque.schedule` to enable atomic clear & set
162
+
163
+ ### Changed
164
+ - Avoid use of redis `KEYS` command in `Resque.remove_delayed_selection`
165
+
166
+ ### Fixed
167
+ - Only release master lock if it belongs to us
168
+ - Only override configuration options if provided
169
+
170
+ ## [3.0.0] - 2014-05-27
171
+ ### Added
172
+ - Vagrant setup
173
+ - Support for last execution information through the web
174
+ - CodeClimate integration
175
+ - `Resque.delayed?` and `Resque.next_delayed_schedule`
176
+ - Allow scheduled jobs to be deleted via resque web
177
+
178
+ ### Changed
179
+ - The grand re-namespacing of `resque_scheduler/(.*)` =&gt;
180
+ `resque/scheduler/\1`
181
+ - "Refactoring"
182
+ - Cleanup of a ton of rubocop offenses
183
+ - Documentation updates
184
+ - Handling signals while "sleeping" by relying on `Thread#wakeup`
185
+ - Testing against same rubies as resque (+ 2.1.1)
186
+ - Renamed `Resque.set_last_run` to `Resque.last_enqueued_at`
187
+
188
+ ### Fixed
189
+ - Duplicated layout for `search_form` partial template.
190
+ - Issue where Web UI was ONLY showing jobs that only run in the current
191
+ environment
192
+
193
+ ## [2.5.5] - 2014-02-27
194
+ ### Changed
195
+ - Only showing link to job with args if job is present
196
+ - Only showing scheduled jobs that match current env or omit env
197
+ - Ensuring lock and acquire lua scripts are refreshed on timeout change
198
+ - Switch to using `mono_logger` instead of stdlib `logger`
199
+
200
+ ## [2.5.4] - 2014-02-17
201
+ ### Changed
202
+ - Documentation updates
203
+
204
+ ## [2.5.3] - 2014-02-12
205
+ ### Fixed
206
+ - Handling signals during poll sleep
207
+
208
+ ## [2.5.2] - 2014-02-11
209
+ ### Changed
210
+ - Pinning down dependency versions more tightly
211
+
212
+ ## [2.5.1] - 2014-02-09
213
+ ### Fixed
214
+ - Make signal handling (really) Ruby 2 compatible
215
+
216
+ ## [2.5.0] - 2014-02-09
217
+ ### Added
218
+ - Search feature to the Delayed tab in Resque Web
219
+
220
+ ### Changed
221
+ - Use `logger.error` when logging errors from `handle_errors`
222
+
223
+ ### Fixed
224
+ - Confusion with redis version requirements in `README.md`
225
+
226
+ ## [2.4.0] - 2014-01-14
227
+ ### Added
228
+ - Including optional env and app names in procline
229
+ - A standalone `resque-scheduler` executable
230
+ - Support for persistence of dynamic schedules
231
+ - `.configure` convenience method for block-style configuration
232
+ - `.remove_delayed_selection` method to remove based on result of a block
233
+ - Support for viewing all schedules for a job in web UI
234
+
235
+ ### Changed
236
+ - Bumping the copyright year
237
+ - Corrected doc for syntax of class and every keys
238
+ - Use resque redis namespace in the master lock key
239
+ - Various test improvements, :bug: fixes, and documentation updates!
240
+
241
+ ### Removed
242
+ - **POSSIBLE BREAKING CHANGE**: Dropping support for ree
243
+
244
+ ### Fixed
245
+ - An explosion regarding `every` in the views
246
+ - Unsafe shutdown in Ruby 2
247
+
248
+ ## 2.3.1 (2013-11-20)
249
+ ### Fixed
250
+ - `require_paths` in gemspec
251
+
252
+ ## 2.3.0 (2013-11-07)
253
+ ### Added
254
+ - Add rufus scheduler `every` notice to README
255
+ - Specify MIT license in gemspec
256
+
257
+ ### Changed
258
+ - **BREAKING CHANGE**: Added `RESQUE_SCHEDULER_INTERVAL` in place of `INTERVAL`
259
+ - Use `Float()` instead of `Integer()` to calculate poll sleep amount
260
+ - Upgraded dependence of Resque to support 1.25
261
+ - Use `Resque.validate` instead of custom `.validate_job!`
262
+
263
+ ### Fixed
264
+ - Re-introduced `ThreadError` on Ruby 2
265
+
266
+ ## 2.2.0 (2013-10-13)
267
+ ### Added
268
+ - Support for parameterized resque jobs.
269
+ - Allowing prefix for `master_lock_key`.
270
+ - `Resque.clean_schedules` method, which is useful when setting up the scheduler
271
+ for the first time.
272
+
273
+ ### Changed
274
+ - Locking rufus-scheduler dependency to `~> 2.0`
275
+ - Updated redis dependency to `>= 3.0.0`
276
+
277
+ ### Fixed
278
+ - Bug fixes related to first time schedule retrieval and missing schedules.
279
+
280
+ ## 2.1.0 (2013-09-20)
281
+ ### Added
282
+ - Add `#scheduled_at` which returns an array of timestamps at which the
283
+ specified job is scheduled
284
+ - Add `#enqueue_delayed` for enqueueing specific delayed jobs immediately
285
+ - Show server local time in resque-web
286
+ - Add support for configuring `Resque::Scheduler.poll_sleep_amount` via the
287
+ `INTERVAL` environmental variable.
288
+
289
+ ### Changed
290
+ - Locking to resque &lt; 1.25.0 (for now)
291
+ - Syncing stdout/stderr
292
+ - Using a logger instead of `#puts`, configurable via `LOGFILE`, `VERBOSE`, and
293
+ `MUTE` environmental variables, as well as being settable via
294
+ `Resque::Scheduler#logger`
295
+ - Enqueue immediately if job is being enqueued in the past
296
+
297
+ ### Removed
298
+ - Dependency on `Resque::Helpers`
299
+
300
+ ### Fixed
301
+ - Ensuring `Resque.schedule=` sets rather than appends
302
+ - Process daemonization fixes including stdio redirection and redis client
303
+ reconnection
304
+ - Scheduler template when arrays are passed to rufus-scheduler
305
+ - Fixed shutdown in ruby 2.0.0
306
+
307
+ ## [2.0.1] - 2013-03-20
308
+ ### Added
309
+ - Locking to support master failover
310
+ - Allow custom job classes to be used in `Resque.enqueue_at`
311
+ - Allowing `#enqueue_at` to call `#scheduled` when `Resque.inline` is `true`
312
+
313
+ ### Changed
314
+ - More efficient `#remove_delayed` implementation
315
+
316
+ ## [2.0.0] - 2012-05-04
317
+ ### Added
318
+ - Support for Resque.inline configuration (carlosantoniodasilva)
319
+
320
+ ### Fixed
321
+ - Possible job loss race condition around deleting delayed queues and enqueuing
322
+ a job 0 seconds in the future.
323
+
324
+ ## [2.0.0.h] - 2012-03-19
325
+ ### Added
326
+ - Plugin support with hooks (andreas)
327
+
328
+ ## [2.0.0.f] - 2011-11-03
329
+ ### Added
330
+ - Support `ENV['BACKGROUND']` flag for daemonizing (bernerdschaefer)
331
+ - Added support for `before_schedule` and `after_schedule` hooks (yaauie)
332
+ - Added `remove_delayed_job_from_timestamp` to remove delayed jobs from
333
+ a given timestamp.
334
+
335
+ ### Fixed
336
+ - Address race condition with delayed jobs (using redis transactions)
337
+
338
+ ## [2.0.0.e] - 2011-09-16
339
+ ### Added
340
+ - `enqueue_at_with_queue`/`enqueue_in_with_queue` support (niralisse)
341
+ - `Resque::Scheduler.poll_sleep_amount` to allow for configuring
342
+ the sleep time b/w delayed queue polls.
343
+ - "Clear Delayed Jobs" button to the Delayed Jobs page (john-griffin)
344
+
345
+ ### Fixed
346
+ - Pagination issue on the Delayed tab
347
+
348
+ ## [2.0.0.d] - 2011-04-04
349
+ ### Changed
350
+ - Porting bug fixes from v1.9-stable
351
+
352
+ ## [2.0.0.c] - 2011-03-25
353
+ ### Changed
354
+ - Rake task drop a pid file (sreeix)
355
+
356
+ ## [2.0.0.b] - 2011-02-25
357
+ ### Fixed
358
+ - Bugs
359
+
360
+ ## 2.0.0.a - 2010-12-10
361
+ ### Added
362
+ - Dynamic schedule support (brianjlandau, davidyang)
363
+
364
+ ### Changed
365
+ - Now depends on redis >=1.3
366
+
367
+ ## [1.9.11] - 2013-11-20
368
+ ### Fixed
369
+ - Behavior of `#validate_job!` via `#enqueue_at_with_queue` #286
370
+ - `require_paths` in gemspec #288
371
+
372
+ ## [1.9.10] - 2013-09-19
373
+ ### Added
374
+ - Backported `#enqueue_at_with_queue`
375
+ - Locking to resque &lt; 1.25.0
376
+ - Ruby 1.8 compatibility in scheduler tab when schedule keys are symbols
377
+
378
+ ### Changed
379
+ - Mocha setup compatibility
380
+
381
+ ## [1.9.9] - 2011-03-29
382
+ ### Added
383
+ - Compatibility with resque 1.15.0
384
+
385
+ ## [1.9.8] - 2011-01-14
386
+ ### Changed
387
+ - Validates delayed jobs prior to insertion into the delayed queue (bogdan)
388
+ - Rescue exceptions that occur during queuing and log them (dgrijalva)
389
+
390
+ ## [1.9.7] - 2010-11-09
391
+ ### Added
392
+ - Support for rufus-scheduler "every" syntax (fallwith)
393
+ - Ability to pass a Time to `handle_delayed_items` for testing/staging (rcarver)
394
+
395
+ ## [1.9.6] - 2010-10-08
396
+ ### Added
397
+ - Support for custom job classes (like resque-status) (mattetti)
398
+
399
+ ## [1.9.5] - 2010-09-09
400
+ ### Changed
401
+ - Updated scheduler rake task to allow for an alternate setup task
402
+ to avoid loading the entire stack. (chewbranca)
403
+
404
+ ### Fixed
405
+ - Sig issue on win32 (#25)
406
+
407
+ ## [1.9.4] - 2010-07-29
408
+ ### Added
409
+ - Ability to remove jobs from delayed queue (joshsz)
410
+
411
+ ### Fixed
412
+ - Issue #23 (removing .present? reference)
413
+
414
+ ## [1.9.3] - 2010-07-07
415
+ ### Fixed
416
+ - Bug fix (#19)
417
+
418
+ ## [1.9.2] - 2010-06-16
419
+ ### Fixed
420
+ - Issue with redis gem 2.0.1 and redis server 1.2.6 (dbackeus)
421
+
422
+ ## [1.9.1] - 2010-06-04
423
+ ### Fixed
424
+ - Issue with redis server 1.2.6 and redis gem 2.0.1
425
+
426
+ ## [1.9.0] - 2010-06-04
427
+ ### Added
428
+ - Redis 2.0 support (bpo)
429
+
430
+ ## [1.8.2] - 2010-06-04
431
+ ### Added
432
+ - Queue now functionality to delayed timestamps (daviddoan)
433
+
434
+ ## [1.8.1] - 2010-05-19
435
+ ### Added
436
+ - `rails_env` for scheduled jobs to support scoping jobs by
437
+ `RAILS_ENV` (gravis).
438
+ - Adding gemspec for bundler support.
439
+
440
+ ### Fixed
441
+ - Ruby 1.8.6 compatibility issue.
442
+
443
+ ## [1.8.0] - 2010-04-14
444
+ ### Added
445
+ - Tests for resque-web (gravis)
446
+
447
+ ### Changed
448
+ - Moving version to match corresponding resque version
449
+ - Sorting schedule on Scheduler tab
450
+
451
+ ## [1.0.5] - 2010-03-01
452
+ ### Fixed
453
+ - Support for overriding queue from schedule config.
454
+
455
+ ### Changed
456
+ - The queue is now stored with the job and arguments in the delayed queue so
457
+ there is no longer a need for the scheduler to load job classes to introspect
458
+ the queue.
459
+
460
+ ### Removed
461
+ - resque-web dependency on loading the job classes for "Queue Now", provided
462
+ "queue" is specified in the schedule.
463
+
464
+ ## [1.0.4] - 2010-02-26
465
+ ### Added
466
+ - Support for specifying the queue to put the job onto. This allows for you to
467
+ have one job that can go onto multiple queues and be able to schedule jobs
468
+ without having to load the job classes.
469
+
470
+ ## [1.0.3] - 2010-02-11
471
+ ### Added
472
+ - Support for scheduled jobs with empty crons. This is helpful to have jobs that
473
+ you don't want on a schedule, but do want to be able to queue by clicking a
474
+ button.
475
+
476
+ ## [1.0.2] - 2010-02-10
477
+ ### Changed
478
+ - Delayed Job tab to display job details if only 1 job exists for a given
479
+ timestamp
480
+
481
+ ## [1.0.1] - 2010-02-01
482
+ ### Fixed
483
+ - Delayed jobs close together resulted in a 5 second sleep
484
+
485
+ ## [1.0.0] - 2009-12-21
486
+ ### Added
487
+ - Initial release
488
+
489
+ [Unreleased]: https://github.com/resque/resque-scheduler/compare/v4.5.0...HEAD
490
+ [4.5.0]: https://github.com/resque/resque-scheduler/compare/v4.4.0...v4.5.0
491
+ [4.4.0]: https://github.com/resque/resque-scheduler/compare/v4.3.1...v4.4.0
492
+ [4.3.1]: https://github.com/resque/resque-scheduler/compare/v4.3.0...v4.3.1
493
+ [4.3.0]: https://github.com/resque/resque-scheduler/compare/v4.2.1...v4.3.0
494
+ [4.2.1]: https://github.com/resque/resque-scheduler/compare/v4.2.0...v4.2.1
495
+ [4.2.0]: https://github.com/resque/resque-scheduler/compare/v4.1.0...v4.2.0
496
+ [4.1.0]: https://github.com/resque/resque-scheduler/compare/v4.0.0...v4.1.0
497
+ [4.0.0]: https://github.com/resque/resque-scheduler/compare/v3.1.0...v4.0.0
498
+ [3.1.0]: https://github.com/resque/resque-scheduler/compare/v3.0.0...v3.1.0
499
+ [3.0.0]: https://github.com/resque/resque-scheduler/compare/v2.5.5...v3.0.0
500
+ [2.5.5]: https://github.com/resque/resque-scheduler/compare/v2.5.4...v2.5.5
501
+ [2.5.4]: https://github.com/resque/resque-scheduler/compare/v2.5.3...v2.5.4
502
+ [2.5.3]: https://github.com/resque/resque-scheduler/compare/v2.5.2...v2.5.3
503
+ [2.5.2]: https://github.com/resque/resque-scheduler/compare/v2.5.1...v2.5.2
504
+ [2.5.1]: https://github.com/resque/resque-scheduler/compare/v2.5.0...v2.5.1
505
+ [2.5.0]: https://github.com/resque/resque-scheduler/compare/v2.4.0...v2.5.0
506
+ [2.4.0]: https://github.com/resque/resque-scheduler/compare/v2.3.1...v2.4.0
507
+ [2.3.1]: https://github.com/resque/resque-scheduler/compare/v2.3.0...v2.3.1
508
+ [2.3.0]: https://github.com/resque/resque-scheduler/compare/v2.2.0...v2.3.0
509
+ [2.2.0]: https://github.com/resque/resque-scheduler/compare/v2.1.0...v2.2.0
510
+ [2.1.0]: https://github.com/resque/resque-scheduler/compare/v2.0.1...v2.1.0
511
+ [2.0.1]: https://github.com/resque/resque-scheduler/compare/v2.0.0...v2.0.1
512
+ [2.0.0]: https://github.com/resque/resque-scheduler/compare/v2.0.0.h...v2.0.0
513
+ [2.0.0.h]: https://github.com/resque/resque-scheduler/compare/v2.0.0.f...v2.0.0.h
514
+ [2.0.0.f]: https://github.com/resque/resque-scheduler/compare/v2.0.0.e...v2.0.0.f
515
+ [2.0.0.e]: https://github.com/resque/resque-scheduler/compare/v2.0.0.d...v2.0.0.e
516
+ [2.0.0.d]: https://github.com/resque/resque-scheduler/compare/v2.0.0.c...v2.0.0.d
517
+ [2.0.0.c]: https://github.com/resque/resque-scheduler/compare/61c7b5f...v2.0.0.c
518
+ [2.0.0.b]: https://github.com/resque/resque-scheduler/compare/v2.0.0.a...61c7b5f
519
+ [1.9.11]: https://github.com/resque/resque-scheduler/compare/v1.9.10...v1.9.11
520
+ [1.9.10]: https://github.com/resque/resque-scheduler/compare/v1.9.9...v1.9.10
521
+ [1.9.9]: https://github.com/resque/resque-scheduler/compare/v1.9.8...v1.9.9
522
+ [1.9.8]: https://github.com/resque/resque-scheduler/compare/v1.9.7...v1.9.8
523
+ [1.9.7]: https://github.com/resque/resque-scheduler/compare/v1.9.6...v1.9.7
524
+ [1.9.6]: https://github.com/resque/resque-scheduler/compare/v1.9.5...v1.9.6
525
+ [1.9.5]: https://github.com/resque/resque-scheduler/compare/v1.9.4...v1.9.5
526
+ [1.9.4]: https://github.com/resque/resque-scheduler/compare/v1.9.3...v1.9.4
527
+ [1.9.3]: https://github.com/resque/resque-scheduler/compare/v1.9.2...v1.9.3
528
+ [1.9.2]: https://github.com/resque/resque-scheduler/compare/v1.9.1...v1.9.2
529
+ [1.9.1]: https://github.com/resque/resque-scheduler/compare/v1.9.0...v1.9.1
530
+ [1.9.0]: https://github.com/resque/resque-scheduler/compare/v1.8.2...v1.9.0
531
+ [1.8.2]: https://github.com/resque/resque-scheduler/compare/v1.8.1...v1.8.2
532
+ [1.8.1]: https://github.com/resque/resque-scheduler/compare/v1.8.0...v1.8.1
533
+ [1.8.0]: https://github.com/resque/resque-scheduler/compare/v1.0.5...v1.8.0
534
+ [1.0.5]: https://github.com/resque/resque-scheduler/compare/v1.0.4...v1.0.5
535
+ [1.0.4]: https://github.com/resque/resque-scheduler/compare/v1.0.3...v1.0.4
536
+ [1.0.3]: https://github.com/resque/resque-scheduler/compare/v1.0.2...v1.0.3
537
+ [1.0.2]: https://github.com/resque/resque-scheduler/compare/v1.0.1...v1.0.2
538
+ [1.0.1]: https://github.com/resque/resque-scheduler/compare/v1.0.0...v1.0.1
539
+ [1.0.0]: https://github.com/resque/resque-scheduler/compare/v0.0.1...v1.0.0
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at resque@librelist.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile CHANGED
@@ -1,5 +1,29 @@
1
+ # vim:fileencoding=utf-8
1
2
  source 'https://rubygems.org'
2
3
 
3
- gemspec
4
+ case resque_version = ENV.fetch('RESQUE', 'master')
5
+ when 'master'
6
+ gem 'resque', git: 'https://github.com/resque/resque'
7
+ else
8
+ gem 'resque', resque_version
9
+ end
10
+
11
+ case rufus_scheduler_version = ENV.fetch('RUFUS_SCHEDULER', '3.6')
12
+ when 'master'
13
+ gem 'rufus-scheduler', git: 'https://github.com/jmettraux/rufus-scheduler'
14
+ else
15
+ gem 'rufus-scheduler', rufus_scheduler_version
16
+ end
17
+
18
+ case redis_version = ENV.fetch('REDIS_VERSION', 'latest')
19
+ when 'master'
20
+ gem 'redis', git: 'https://github.com/redis/redis-rb'
21
+ when 'latest'
22
+ gem 'redis'
23
+ else
24
+ gem 'redis', redis_version
25
+ end
4
26
 
5
- gem 'yajl-ruby', '~> 0.8.2', :platforms => :mri, :group => :test
27
+ gem 'sinatra', '> 2.0'
28
+
29
+ gemspec
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 Ben VandenBos
1
+ Copyright (c) 2014 Ben VandenBos
2
2
 
3
3
  MIT License
4
4