rufus-scheduler 3.1.4 → 3.8.2

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.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +410 -0
  3. data/CREDITS.md +142 -0
  4. data/LICENSE.txt +1 -1
  5. data/Makefile +27 -0
  6. data/README.md +407 -143
  7. data/lib/rufus/scheduler/job_array.rb +36 -66
  8. data/lib/rufus/scheduler/jobs_core.rb +369 -0
  9. data/lib/rufus/scheduler/jobs_one_time.rb +53 -0
  10. data/lib/rufus/scheduler/jobs_repeat.rb +335 -0
  11. data/lib/rufus/scheduler/locks.rb +41 -67
  12. data/lib/rufus/scheduler/util.rb +89 -179
  13. data/lib/rufus/scheduler.rb +545 -453
  14. data/rufus-scheduler.gemspec +22 -11
  15. metadata +44 -85
  16. data/CHANGELOG.txt +0 -243
  17. data/CREDITS.txt +0 -88
  18. data/Rakefile +0 -83
  19. data/TODO.txt +0 -151
  20. data/lib/rufus/scheduler/cronline.rb +0 -470
  21. data/lib/rufus/scheduler/jobs.rb +0 -633
  22. data/lib/rufus/scheduler/zones.rb +0 -174
  23. data/lib/rufus/scheduler/zotime.rb +0 -155
  24. data/spec/basics_spec.rb +0 -54
  25. data/spec/cronline_spec.rb +0 -915
  26. data/spec/error_spec.rb +0 -139
  27. data/spec/job_array_spec.rb +0 -39
  28. data/spec/job_at_spec.rb +0 -58
  29. data/spec/job_cron_spec.rb +0 -128
  30. data/spec/job_every_spec.rb +0 -104
  31. data/spec/job_in_spec.rb +0 -20
  32. data/spec/job_interval_spec.rb +0 -68
  33. data/spec/job_repeat_spec.rb +0 -357
  34. data/spec/job_spec.rb +0 -631
  35. data/spec/lock_custom_spec.rb +0 -47
  36. data/spec/lock_flock_spec.rb +0 -47
  37. data/spec/lock_lockfile_spec.rb +0 -61
  38. data/spec/lock_spec.rb +0 -59
  39. data/spec/parse_spec.rb +0 -263
  40. data/spec/schedule_at_spec.rb +0 -158
  41. data/spec/schedule_cron_spec.rb +0 -66
  42. data/spec/schedule_every_spec.rb +0 -109
  43. data/spec/schedule_in_spec.rb +0 -80
  44. data/spec/schedule_interval_spec.rb +0 -128
  45. data/spec/scheduler_spec.rb +0 -1067
  46. data/spec/spec_helper.rb +0 -126
  47. data/spec/threads_spec.rb +0 -96
  48. data/spec/zotime_spec.rb +0 -396
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9fbe0f73068129b96196031b141f480f830e3110e35d3c5eaa2206530b1ae536
4
+ data.tar.gz: bec310a43820928b8d342b5b3602edf8cb27aaca8995e0a18073d70dfd3839f8
5
+ SHA512:
6
+ metadata.gz: 3e8edfd4df2ddbb0f8026ffa13fff69f9f4bd045da1638fe5ac38610992e0f7d173b20a27ad1833760d6fee62d41b5b160978e107dbc55a1b9d07dfaa62444ad
7
+ data.tar.gz: 412bb7e80546c5cd13bf8875f928ce6920a9e62774d296db83935adbfee56069cbb2729bb4640962351297cd55b8b5cfb92facfec38e7cb92b3ef9f7446c7283
data/CHANGELOG.md ADDED
@@ -0,0 +1,410 @@
1
+
2
+ # CHANGELOG.md
3
+
4
+
5
+ ### rufus-scheduler 3.8.2 - released 2022-07-12
6
+
7
+ * Prevent error in shutdown when @thread is current Thread, gh-337
8
+ * Rescue errors on the scheduling thread, gh-335
9
+
10
+
11
+ ### rufus-scheduler 3.8.1 - released 2022-01-11
12
+
13
+ * Suppress warning about @resume_discard_past
14
+ * Suppress warning about unused variable, solackerman gh-332
15
+
16
+
17
+ ### rufus-scheduler 3.8.0 - released 2021-07-14
18
+
19
+ * Add #source_location to Job, gh-322
20
+
21
+
22
+ ### rufus-scheduler 3.7.0 - released 2020-12-31
23
+
24
+ * Implement Job name:/n: #name and #name=, gh-309
25
+ * Add Job #has_key?, #value, and #entries
26
+ * Add #locals access to Job
27
+ * Implement Scheduler#around_trigger, @jjb, gh-310
28
+ * Accept max_worker_threads: for max_work_threads:
29
+ * Clean up Scheduler#shutdwon, thanks @itsaphel and @jjb, gh-304, gh-315
30
+
31
+ * f59df40 Bring in discard_past: for every jobs, gh-290
32
+ * 7613277 Introduce :discard_past = false for cron, gh-305
33
+
34
+
35
+ ### rufus-scheduler 3.6.0 - released 2019-04-22
36
+
37
+ * Let Scheduler#cron fail if the cron string is invalid, gh-289
38
+ * Implement Job#next_times(count) for cron, every, and interval jobs
39
+ * Implement Job#next_times(count) for at and in jobs
40
+ * Stop fooling around and stick to https://semver.org
41
+
42
+
43
+ ### rufus-scheduler 3.5.2 - released 2018-08-01
44
+
45
+ * Use Fugit::Cron#rough_frequency
46
+ * Improve Job#check_frequency performance, gh-276, @drcapulet
47
+
48
+
49
+ ### rufus-scheduler 3.5.1 - released 2018-07-20
50
+
51
+ * Upgrade fugit to 1.1.4 (with out of DST issue fix)
52
+ * Ensure JRuby doesn't count fresh, new, work threads as vacant
53
+
54
+
55
+ ### rufus-scheduler 3.5.0 - released 2018-05-15
56
+
57
+ * Use fugit to parse durations
58
+ * Drop .parse_time_string and .parse_duration_string
59
+ * Use fugit to parse cronlines
60
+
61
+
62
+ ### rufus-scheduler 3.4.2 - released 2017-05-24
63
+
64
+ (had yanked 3.4.1, going 3.4.2)
65
+
66
+
67
+ ### rufus-scheduler 3.4.1 - released 2017-05-24
68
+
69
+ * Let #schedule accept a CronLine instance, gh-247
70
+
71
+
72
+ ### rufus-scheduler 3.4.0 - released 2017-03-23
73
+
74
+ * Stop supporting Ruby < 1.9
75
+ * Drop ZoTime for et-orbi Etorbi::EoTime, gh-240
76
+ * Fix for ZooKeeper example, thanks to @djrodgerspryor, gh-238
77
+
78
+
79
+ ### rufus-scheduler 3.3.4 - released 2017-02-16
80
+
81
+ * More detailed "cannot determine timezone from nil" message, gh-237
82
+
83
+
84
+ ### rufus-scheduler 3.3.3 - released 2017-01-29
85
+
86
+ * use Rails' timezone by default if Rails is present, gh-230, gh-233,
87
+ thanks Alexander Deeb
88
+ * is_a?(Fixnum) replaced by is_a?(Integer), gh-232, thanks Cody Cutrer
89
+ * Fix for every double trigger, gh-231, thanks Sofia Bravo
90
+
91
+
92
+ ### rufus-scheduler 3.3.2 - released 2017-01-05
93
+
94
+ * Fix ZoTime issue with `Time.zone.now #=> 'CST'`, thanks zzjin
95
+ * Fix cron weekdays + monthdays, by Dominik Sander, https://github.com/dsander
96
+ * Speedup CronLine#brute_frequency, by Dominik Sander
97
+ * Use object_id instead of hash to make Job id
98
+
99
+
100
+ ### rufus-scheduler 3.3.1 - released 2016-12-03
101
+
102
+ * gh-222 fall back on `ENV['TZ']` when Time.now.zone is something
103
+ like "中国标准时间" (ask for "Asia/Shanghai"), thanks to
104
+ https://github.com/lovingyu
105
+
106
+
107
+ ### rufus-scheduler 3.3.0 - released 2016-11-28
108
+
109
+ * Bring in Piavka's Job#trigger_off_schedule, gh-214
110
+ * Reject "day 0" in cronlines, thanks to Ramon Tayag, https://github.com/ramontayag
111
+ * Move away from `ENV['TZ']`, thanks to Akinori Musha, https://github.com/knu
112
+ * Fix .parse_to_time vs Date issue, as reported by @nsatragno
113
+
114
+
115
+ ### rufus-scheduler 3.2.2 - released 2016-08-14
116
+
117
+ * job opt hash preservation, as suggested in gh-212, by https://github.com/d-m-u
118
+ * introduce Job#previous_time
119
+ * countered ActiveRecord 3.2.22 on gh-210, by https://github.com/paulodelgado
120
+
121
+
122
+ ### rufus-scheduler 3.2.1 - released 2016-05-04
123
+
124
+ * accept `'* * * * 5L'` (last friday) (equivalent to `'* * * * 5#-1'`)
125
+ * CronLine#to_a (#to_array aliasing to it)
126
+ * simplify .parse_duration (and trim input)
127
+ * raise on `"*/0 * * * *"`, by https://github.com/simook
128
+ * introduce "days to end of month" in cron strings
129
+
130
+
131
+ ### rufus-scheduler 3.2.0 - released 2015-12-28
132
+
133
+ * cache CronLine#brute_frequency results, gh-188 and gh-89
134
+ * "every" shift prevention by https://github.com/Korrigan
135
+ * Ruby warnings silenced by https://github.com/vivitar
136
+
137
+
138
+ ### rufus-scheduler 3.1.10 - released 2015-11-18
139
+
140
+ * allow for `:first_in => 0`, gh-179 by https://github.com/JonMcPherson
141
+ for https://github.com/Shopify/dashing/commit/ea3730fa4
142
+ * stop shipping specs in gem
143
+
144
+
145
+ ### rufus-scheduler 3.1.9 - released 2015-11-12
146
+
147
+ * fix potential RuntimeError in CronLine#prev_second,
148
+ by Alexandru https://github.com/alexandru-calinoiu
149
+
150
+
151
+ ### rufus-scheduler 3.1.8 - released 2015-11-10
152
+
153
+ * stop jumping eagerly out of DST, fix for one hour jump when leaving DST
154
+ thanks Alyssa http://github.com/alyssa
155
+
156
+
157
+ ### rufus-scheduler 3.1.7 - released 2015-10-15
158
+
159
+ * ack #unscheduled_at in #scheduled?, by Claude https://github.com/claudeatsafe
160
+
161
+
162
+ ### rufus-scheduler 3.1.6 - released 2015-10-01
163
+
164
+ * fix job id uniqueness (JRuby), thanks 김성식 https://github.com/kssminus
165
+
166
+
167
+ ### rufus-scheduler 3.1.5 - released 2015-09-25
168
+
169
+ * fix for "not a valid cronline" on "mingw" Ruby distributions, gh-166
170
+
171
+
172
+ ### rufus-scheduler 3.1.4 - released 2015/08/29
173
+
174
+ * fix cron issue reported by Jesse https://github.com/jhw-at-prosperworks-com
175
+
176
+
177
+ ### rufus-scheduler 3.1.3 - released 2015/06/20
178
+
179
+ * prevent `Thread[:rufus_scheduler_time]` being nil, gh-156
180
+ * fix inconsistency in Job#start_work_thread
181
+
182
+
183
+ ### rufus-scheduler 3.1.2 - released 2015/05/23
184
+
185
+ * avoid cron/:first_at infinite loop, thanks https://github.com/pouellet
186
+
187
+
188
+ ### rufus-scheduler 3.1.1 - released 2015/04/19
189
+
190
+ * fix ZoTime.is_timezone? on OSX, thanks https://github.com/yaauie
191
+
192
+
193
+ ### rufus-scheduler 3.1.0 - released 2015/04/18
194
+
195
+ * go without tzinfo (and its dependencies)
196
+ * include @ketan's #next_time improvements
197
+ * remove 2.x warning message on install
198
+
199
+
200
+ ### rufus-scheduler 3.0.9 - released 2014/08/30
201
+
202
+ * fix TZ with underscores, thanks https://github.com/gnilrets
203
+ * integrate https://github.com/ecin Lock mecha
204
+
205
+
206
+ ### rufus-scheduler 3.0.8 - released 2014/06/09
207
+
208
+ * handle TZInfo errors on DST transitions, thanks https://github.com/junhanamaki
209
+ * implement Scheduler#up?
210
+ * let schedule and schedule_at use Chronic if present
211
+ * let Rufus::Scheduler.parse use Chronic if present
212
+
213
+
214
+ ### rufus-scheduler 3.0.7 - released 2014/03/18
215
+
216
+ * implement Scheduler #occurrences and #timeline, inspired by kreynolds
217
+ * implement Job #last_work_time and #mean_work_time
218
+ * implement Job#count
219
+ * add more info to the stderr error output (scheduler/tz info)
220
+ * prevent skipping a day on switch to summertime, gh-114, thanks Matteo
221
+
222
+
223
+ ### rufus-scheduler 3.0.6 - released 2014/02/14
224
+
225
+ * avoid "can't be called from trap context" on Ruby 2.0, gh-98
226
+
227
+
228
+ ### rufus-scheduler 3.0.5 - released 2014/01/30
229
+
230
+ * implement Job#call(do_rescue=false), gh-97
231
+ * implement `:first => :now` for repeat jobs, gh-96
232
+
233
+
234
+ ### rufus-scheduler 3.0.4 - released 2014/01/19
235
+
236
+ * make CronLine#frequency faster (to avoid 20s schedule_cron times)
237
+
238
+
239
+ ### rufus-scheduler 3.0.3 - released 2013/12/12
240
+
241
+ * CronLine#previous_time fix by Yassen Bantchev (https://github.com/yassenb)
242
+ * introduce ZookeptScheduler example in the readme
243
+ * rename #consider_lockfile to #lock and introduce #unlock
244
+
245
+
246
+ ### rufus-scheduler 3.0.2 - released 2013/10/22
247
+
248
+ * default :max_work_threads to 28
249
+ * fix "rufus rushes to create work threads" issue, thanks Gatis Tomsons
250
+ * introduce Rufus::Scheduler::NotRunningError, thanks Gatis Tomsons
251
+
252
+
253
+ ### rufus-scheduler 3.0.1 - released 2013/10/19
254
+
255
+ * fix post_install_message, thanks Ted Pennings
256
+ * bring back .parse_time_string and .parse_duration_string
257
+
258
+
259
+ ### rufus-scheduler 3.0.0 - released 2013/10/02
260
+
261
+ * complete rewrite.
262
+ * introduce scheduler.interval('10s') { ... }
263
+
264
+
265
+ ### rufus-scheduler 2.0.24 - released 2013/09/02
266
+
267
+ * lowered tzinfo dependency to >= 0.3.22
268
+ http://stackoverflow.com/questions/18551970
269
+
270
+
271
+ ### rufus-scheduler 2.0.23 - released 2013/07/26
272
+
273
+ * mutex vs timeout fix by Tobias Kraze
274
+
275
+
276
+ ### rufus-scheduler 2.0.22 - released 2013/07/16
277
+
278
+ * parse `"/10 * * * *"` again (like <= 2.0.19 did), thanks @skrd
279
+
280
+
281
+ ### rufus-scheduler 2.0.21 - released 2013/07/15
282
+
283
+ * add license (MIT) to gemspec file
284
+
285
+
286
+ ### rufus-scheduler 2.0.20 - released 2013/07/15
287
+
288
+ * add Rufus::Scheduler.new (so that rs 3.0 quickstarts are OK with 2.0.20)
289
+ * implement CronLine#previous_time(now=Time.now) (Idea Matteo Cerutti)
290
+ * throw ArgumentError for invalid cron lines (Thanks Aimee Rose)
291
+ * cron 0 vs 24 hour case straightening (Thanks Aimee Rose)
292
+ * support for sun#L or sun#-2 in cron lines
293
+
294
+
295
+ ### rufus-scheduler 2.0.19 - released 2013/05/07
296
+
297
+ * raise ArgumentError on <= 0.0 "every" frequency (Thanks Lucy Fu)
298
+ * support multiple mutexes (Thanks Rainux Luo)
299
+
300
+
301
+ ### rufus-scheduler 2.0.18 - released 2013/03/06
302
+
303
+ * support for "L" in cron lines (Thanks Andrew Davey)
304
+ * support for negative time strings (Thanks Danny "northox" Fullerton)
305
+ * reject invalid weekdays (Thanks pazustep)
306
+
307
+
308
+ ### rufus-scheduler 2.0.17 - released 2012/06/14
309
+
310
+ * @andrehjr patch to make it work on Ruby 1.9.3
311
+ * raises ArgumentError on unknown/unsupported options (Idea Tero Tilus)
312
+
313
+
314
+ ### rufus-scheduler 2.0.16 - released 2011/12/31
315
+
316
+ * hardened Rufus.parse_time_string
317
+ * running job thread: getting rid of the job pointer once job is done
318
+
319
+
320
+ ### rufus-scheduler 2.0.15 - released 2011/12/20
321
+
322
+ * Scheduler#running_jobs (Thanks Louis Coilliot)
323
+
324
+
325
+ ### rufus-scheduler 2.0.14 - released 2011/12/11
326
+
327
+ * Job #pause and #resume
328
+ * Scheduler #pause(job_or_job_id) and #resume(job_or_job_id)
329
+ * Scheduler#unschedule(job_or_job_id)
330
+
331
+
332
+ ### rufus-scheduler 2.0.13 - released 2011/11/14
333
+
334
+ * cron lines now OK with "09". Thanks Anthony Lewis
335
+
336
+
337
+ ### rufus-scheduler 2.0.12 - released 2011/10/28
338
+
339
+ * hardened exception handling. Thanks Sam Gibson
340
+ * accepting #handle_exception, #log_exception or #on_exception
341
+ * `scheduler.in '1s', :mutex => 'that_mutex_name'`
342
+
343
+
344
+ ### rufus-scheduler 2.0.11 - released 2011/09/30
345
+
346
+ * require 'rufus-scheduler' works
347
+
348
+
349
+ ### rufus-scheduler 2.0.10 - released 2011/06/26
350
+
351
+ * every and allow_overlapping now surviving exceptions. Thanks sha1dy
352
+
353
+
354
+ ### rufus-scheduler 2.0.9 - released 2011/04/22
355
+
356
+ * `Scheduler#first_at` and `:discard_past => true`. Thanks concept47
357
+ * `Scheduler#cron` and monthdays (sun#2 or mon#1)
358
+ * `Scheduler#unschedule_by_tag(t)`
359
+
360
+
361
+ ### rufus-scheduler 2.0.8 - released 2010/12/31
362
+
363
+ * issue with cron `"0 7-23/2 * * *"` fixed. Thanks Pickerel
364
+
365
+
366
+ ### rufus-scheduler 2.0.7 - released 2010/11/09
367
+
368
+ * `:allow_overlapping => false`, thanks Adam Davies
369
+ * cron and timezones, thanks Tanzeeb Khalili
370
+ * `Scheduler#trigger_threads`, thanks Tim Uckun
371
+
372
+
373
+ ### rufus-scheduler 2.0.6 - released 2010/05/01
374
+
375
+ * timeout jobs not outliving their parent job anymore, thanks Joel Wood
376
+
377
+
378
+ ### rufus-scheduler 2.0.5 - released 2010/03/02
379
+
380
+ * fixed parse_time_string(s) issue, thanks Gonzalo Suarez
381
+
382
+
383
+ ### rufus-scheduler 2.0.4 - released 2010/02/12
384
+
385
+ * addressing issue with every and timeout, thanks Tony Day
386
+
387
+
388
+ ### rufus-scheduler 2.0.3 - released 2009/11/04
389
+
390
+ * made sure Schedulables with a call(job) method were OK when passed as second
391
+ parameter (thanks Nate Wiger)
392
+
393
+
394
+ ### rufus-scheduler 2.0.2 - released 2009/10/31
395
+
396
+ * unified JobQueue and CronJobQueue, and handed @last_second management to the
397
+ latter
398
+ * #trigger_block method for easier override
399
+ * passing `:job => job` among Schedulable trigger parameters
400
+
401
+
402
+ ### rufus-scheduler 2.0.1 - released 2009/05/07
403
+ ### rufus-scheduler 2.0.0 - released 2009/05/07
404
+
405
+ ...
406
+
407
+ ## initial release
408
+
409
+ (was [openwferu-scheduler](https://rubygems.org/gems/openwferu-scheduler/versions) before that)
410
+
data/CREDITS.md ADDED
@@ -0,0 +1,142 @@
1
+
2
+ # CREDITS.md
3
+
4
+
5
+ ## Contributors
6
+
7
+ * Bence Monus https://github.com/cromega gh-337 on_error and friends
8
+ * Talia Wong https://github.com/blowfishpro gh-335 on_error and friends
9
+ * Konstantin https://github.com/fa11enangel gh-334 nodejitsu link
10
+ * Olle Jonsson https://github.com/olleolleolle gh-333
11
+ * Sol Ackerman https://github.com/solarckerman gh-332
12
+ * John Bachir https://github.com/jjb gh-310 gh-327
13
+ * Daniel Berger https://github.com/djberg96 gh-300
14
+ * Ceyhun Onur https://github.com/ceyonur parse_cron no_error: true
15
+ * Darwin Wu https://github.com/dwaxe Rails initializer vs tests change
16
+ * Mike Karolow https://github.com/mike-yesware update Travis target Rubies
17
+ * Jack-Nie https://github.com/jack-nie gh-285 fix broken comment link
18
+ * Yechiel Kalmenson (https://github.com/achasveachas) README link fix
19
+ * Alex Coomans (https://github.com/drcapulet) gh-276 freq check pref improvement
20
+ * Vais Salikhov (https://github.com/vais) many document clarifications
21
+ * Wes McNamee (https://github.com/ghostsquad) let #schedule accept a CronLine
22
+ * Joe Rafaniello (https://github.com/jrafanie) Travis Ruby 2.4.1
23
+ * Benjamin Fleischer (https://github.com/bf4) ZoTime#subtract
24
+ * Sam Rowe (https://github.com/riddley) gh-240 timezone for Debian
25
+ * Daniel Rodgers-Pryor (https://github.com/djrodgerspryor), gh-238 fix ZooKeeper example
26
+ * Cody Cutrer (https://github.com/ccutrer) gh-232 is_a?(Fixnum) replacement
27
+ * Dominik Sander (https://github.com/dsander), gh-225, gh-226
28
+ * Piavka (https://github.com/piavka) Job#trigger_off_schedule, gh-214
29
+ * Paulo Delgado (https://github.com/paulodelgado) counter ActiveRecord, gh-210
30
+ * Anjali Sharma (https://github.com/anjali-sharma) enhance job#last_time example
31
+ * Kyle Simukka (https://github.com/simook) raise on `"*/0 * * * *"`
32
+ * Ryan McGeary (https://github.com/rmm5t) svg badges for the readme
33
+ * Balasankar C (https://github.com/balasankarc) fix CronJob spec vs December
34
+ * Matthieu Rosinski (https://github.com/Korrigan) prevent "every" shifts
35
+ * vivitar (https://github.com/vivitar) silenced a set of Ruby warnings
36
+ * Jon McPherson (https://github.com/JonMcPherson) `:first_in => 0` back
37
+ * Calinoiu Alexandru Nicolae (https://github.com/alexandru-calinoiu) CronLine#prev_second fix
38
+ * Alyssa Pohahau (https://github.com/alyssa) out of DST transition specs
39
+ * Claude Vessaz (https://github.com/claudeatsafe) ack #unscheduled_at in #scheduled?
40
+ * 김성식 (https://github.com/kssminus) job id uniqueness effort
41
+ * Jesse Willet (https://github.com/jhw-at-prosperworks-com) cron vs `"*/10"`
42
+ * Pascal Ouellet (https://github.com/pouellet) Scheduler#timeline loop fix
43
+ * Ryan Biesemeyer (https://github.com/yaauie) ZoTime.is_timezone? on OSX
44
+ * Ketan Padegaonkar (https://github.com/ketan) .brute_frequency improvement
45
+ * Gabriel Gilder (https://github.com/ggilder) LA DST specs
46
+ * Sterling Paramore (https://github.com/gnilrets) underscore TZ fix
47
+ * ecin (https://github.com/ecin) new lock mecha
48
+ * Adam Jonas (https://github.com/adamjonas) migrate specs to "expect"
49
+ * Yassen Bantchev (https://github.com/yassenb) CronLine#previous_time rewrite
50
+ * Eric Lindvall (https://github.com/eric) Zookeeper locked example
51
+ * Ted Pennings (https://github.com/tedpennings) typo in post_install_message
52
+ * Tobias Kraze (https://github.com/kratob) timeout vs mutex fix
53
+ * Patrick Farrell (https://github.com/pfarrell) pointing at deprecated start_new
54
+ * Thomas Sevestre (https://github.com/thomassevestre) :exception option
55
+ * Matteo Cerutti - last_time / previous_time idea (and initial implementation)
56
+ * Aimee Rose (https://github.com/AimeeRose) cronline and > 24
57
+ * Lucy Fu (https://github.com/lfu) arg error on `<= 0 "every" freq`
58
+ * Rainux Luo (https://github.com/rainux) multiple mutexes
59
+ * Andrew Davey (https://github.com/asdavey) "L" in cron lines
60
+ * Stig Kleppe-Jørgensen (https://github.com/stigkj)
61
+ * Danny "northox" Fullerton (https://github.com/northox) negative time strings
62
+ * Marcus Brito (https://github.com/pazustep) CronLine proofing
63
+ * André Luis Leal Cardoso Junior (https://github.com/andrehjr) 1.9.3 patch
64
+ * Anthony Lewis (https://github.com/anthonylewis) cron lines and 09 issue
65
+ * concept47 (https://github.com/concept47) every and :discard_past
66
+ * Chris Kampemeier (https://github.com/chrisk) rspec 2.0 refinements
67
+ * Tanzeeb Khalili (https://github.com/tanzeeb) cron and timezones
68
+ * Adam Davies (https://github.com/adz) `:allow_overlapping => false`
69
+ * Klaas Jan Wierenga (https://github.com/kjwierenga) at/every/in stress tests (1.0 and 2.0)
70
+ * TobyH (https://github.com/tobyh) faster and cleaner `CronLine#next_time`
71
+
72
+
73
+ ## Feedback
74
+
75
+ * aphel (https://github.com/itsaphel) #shutdown vs current thread, gh-304
76
+ * aesyondu (https://github.com/aesyondu) Rails console 4.2.x, gh-186
77
+ * Sasha Hoellger (https://github.com/mitnal) parse_cron and readme, gh-270
78
+ * Gian (https://github.com/snmgian) cron vs :first clarification, gh-266
79
+ * Vito Laurenza (https://github.com/veetow) help debugging tz issues, gh-240
80
+ * Yoshimi Keiji (https://github.com/walf443) v.3.3.3 mislabelling
81
+ * Alexander Deeb (https://github.com/adeeb1) gh-230
82
+ * Sofia Bravo (http://stackoverflow.com/users/1123850/sofia-bravo) gh-231
83
+ * zzjin (https://github.com/zzjin) 3.3.x vs CST abbreviated timezone, gh-228
84
+ * lovingyu (https://github.com/lovingyu) fallback to `ENV['TZ']`, gh-222
85
+ * Ramon Tayag (https://github.com/ramontayag) prevent day 0 in cronlines
86
+ * Akinori Musha (https://github.com/knu) `ENV['TZ']` setting is harmful
87
+ * Nicolás Satragno (https://twitter.com/nsatragno) parse_to_time vs Date
88
+ * d-m-u duhlmann (https://github.com/d-m-u) job opt hash preservation
89
+ * Anjali Sharma (https://github.com/anjali-sharma) fix typographical error
90
+ * Jonathan Campos (https://github.com/jonbcampos) negative cron day idea
91
+ * Andrey Morskov (https://github.com/accessd) fix typographical error
92
+ * Eduardo Maia (https://github.com/emaiax) rufus and the Rails console
93
+ * Suisea (https://github.com/suisea) readme rewording
94
+ * Radek (http://stackoverflow.com/users/250422) gh-166
95
+ * Patrik Ragnarsson (https://github.com/dentarg) timeout vs nil, gh-156
96
+ * Adefila (https://twitter.com/adefilaedward1) typo in readme
97
+ * Michael Guymon (https://github.com/mguymon) #next_time vs :first_at
98
+ * junhanamaki (https://github.com/junhanamaki) #next_time and dst ambiguities
99
+ * kreynolds (tossrock) - inspiration for #occurrences
100
+ * Matteo (https://github.com/m4ce) dst and cron issue
101
+ * Tobias Bielohlawek (https://github.com/rngtng) missing assertion
102
+ * Joe Taylor and Agis Anastasopoulos (http://stackoverflow.com/questions/21280870) `:first => :now` and `Job#call`
103
+ * Gatis Tomsons (https://github.io/gacha) heavy work threads and lock errors
104
+ * Joast (https://github.com/joast) missing .to_time_string alias (code and doc)
105
+ * Tamir Duberstein (https://github.com/tamird) rdoc inaccuracies
106
+ * Kevin Bouwkamp (https://github.com/bmxpert1) first_at issues
107
+ * Daniel Beauchamp (https://github.com/pushmatrix) pre/post trigger callbacks
108
+ * Arthur Maltson (https://github.com/amaltson) readme fixes
109
+ * skrd (https://github.com/skrd) `"/10 * * * *"` cron issue
110
+ * Hongli Lai - `Scheduler#stop(:terminate => true)` request
111
+ * Tero Tilus - raises on unsupported/unknown options
112
+ * Louis Coilliot - Scheduler#running_jobs
113
+ * Henrique G. Testa - pause/resume concept
114
+ * Sam Gibson (https://github.com/samfoo) exception handling hardening
115
+ * sha1dy (https://github.com/sha1dy) every and overlapping exception issue
116
+ * Defusal - unschedule_by_tag
117
+ * pickerel (https://github.com/pickerel)
118
+ * Gonzalo Suarez - parse_time_string(s) issue
119
+ * Tony Day (https://github.com/tonyday) every and overlapping timeout issue
120
+ * Nate Wiger (Schedulable call/trigger issue)
121
+ * Aldric (readme errors)
122
+ * Kenneth Kalmer (daemon-kit)
123
+ * Chris Evans, :timeout tests on JRuby
124
+ * Tim Uckun, :timeout concept
125
+ * K Liu, for the note about CronLine#next_time
126
+ * Xianhang Zhang, find_jobs(tag=nil) patch
127
+ * Yi Wen, for lib/rufus-scheduler.rb
128
+ * Adam Green and Rael Dornfest for the Taskr breaking issue feedback
129
+ * Sean Liu, unschedule_every issue
130
+ * Manfred Usselman (no cronjobs on sundays bug)
131
+ * Michael Goth, tests with precision &gt; 1s
132
+
133
+ * many people gave feedback previously, see
134
+ http://openwferu.rubyforge.org/svn/trunk/openwfe-ruby/CREDITS.txt (dead)
135
+
136
+
137
+ ## and finally
138
+
139
+ * Many thanks to the contributors of fugit (https://github.com/floraison/fugit) and et-orbi (https://github.com/floraison/et-orbi)
140
+ * Many thanks to the author and contributors of the tzinfo gem (http://tzinfo.github.io/)
141
+ * Many thanks to the EventMachine team (especially Aman Gupta)
142
+
data/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- Copyright (c) 2005-2015, John Mettraux, jmettraux@gmail.com
2
+ Copyright (c) 2005-2022, John Mettraux, jmettraux@gmail.com
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  of this software and associated documentation files (the "Software"), to deal
data/Makefile ADDED
@@ -0,0 +1,27 @@
1
+
2
+ NAME = \
3
+ $(shell ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.name")
4
+ VERSION = \
5
+ $(shell ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.version")
6
+
7
+ count_lines:
8
+ find lib -name "*.rb" | xargs cat | ruby -e "p STDIN.readlines.count { |l| l = l.strip; l[0, 1] != '#' && l != '' }"
9
+ find spec -name "*_spec.rb" | xargs cat | ruby -e "p STDIN.readlines.count { |l| l = l.strip; l[0, 1] != '#' && l != '' }"
10
+ cl: count_lines
11
+
12
+ gemspec_validate:
13
+ @echo "---"
14
+ ruby -e "s = eval(File.read(Dir['*.gemspec'].first)); p s.validate"
15
+ @echo "---"
16
+
17
+ name: gemspec_validate
18
+ @echo "$(NAME) $(VERSION)"
19
+
20
+ build: gemspec_validate
21
+ gem build $(NAME).gemspec
22
+ mkdir -p pkg
23
+ mv $(NAME)-$(VERSION).gem pkg/
24
+
25
+ push: build
26
+ gem push --otp "$(OTP)" pkg/$(NAME)-$(VERSION).gem
27
+