rufus-scheduler 3.1.4 → 3.1.5

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: 3868d39562cba26f7847e6c4d0fe93082e24be3e
4
+ data.tar.gz: eb5d20085cfb73db2dd72b9bd612f4e944e92617
5
+ SHA512:
6
+ metadata.gz: 23d02926922b50fa0d6c99f27e004a0140e53526d6b1659a56da2a83a94e83ce5b16d9c3cacbd8d3bb30bc926ba63611fea9d9443eec34c5ed5fcd4edbed8745
7
+ data.tar.gz: 2b3e50578a1bd80a11d78e66a1dc38a8e34bf1e9c004e9a40e8f2dba87b12801baf06da44a6389fea36139035372f86e835a6a1d9220212e482a0fe835810e1a
data/CHANGELOG.txt CHANGED
@@ -2,6 +2,11 @@
2
2
  = rufus-scheduler CHANGELOG.txt
3
3
 
4
4
 
5
+ == rufus-scheduler - 3.1.5 released 2015-09-25
6
+
7
+ - fix for "not a valid cronline" on "mingw" Ruby distributions, gh-166
8
+
9
+
5
10
  == rufus-scheduler - 3.1.4 released 2015/08/29
6
11
 
7
12
  - fix cron issue reported by Jesse https://github.com/jhw-at-prosperworks-com
data/CREDITS.txt CHANGED
@@ -38,6 +38,7 @@
38
38
 
39
39
  == Feedback
40
40
 
41
+ - Radek - http://stackoverflow.com/users/250422 - gh-166
41
42
  - Patrik Ragnarsson - https://github.com/dentarg - timeout vs nil, gh-156
42
43
  - twitter @adefilaedward1 - typo in readme
43
44
  - Michael Guymon - https://github.com/mguymon - #next_time vs :first_at
data/README.md CHANGED
@@ -1399,6 +1399,7 @@ s = Rufus::Scheduler.singleton
1399
1399
  s.every '1m' do
1400
1400
 
1401
1401
  Rails.logger.info "hello, it's #{Time.now}"
1402
+ Rails.logger.flush
1402
1403
  end
1403
1404
  ```
1404
1405
 
@@ -1427,6 +1428,21 @@ The rufus-scheduler singleton is instantiated in the ```config/initializers/sche
1427
1428
 
1428
1429
  *Warning*: this works well with single-process Ruby servers like Webrick and Thin. Using rufus-scheduler with Passenger or Unicorn requires a bit more knowledge and tuning, gently provided by a bit of googling and reading, see [Faq](#faq) above.
1429
1430
 
1431
+ ### rails server -d
1432
+
1433
+ (Written in reply to https://github.com/jmettraux/rufus-scheduler/issues/165 )
1434
+
1435
+ There is the handy `rails server -d` that starts a development Rails as a daemon. The annoying thing is that the scheduler as seen above is started in the main process that then gets forked and daemonized. The rufus-scheduler thread (and any other thread) gets lost, no scheduling happens.
1436
+
1437
+ I avoid running `-d` in development mode and bother about daemonizing only for production deployment.
1438
+
1439
+ These are two well crafted articles on process daemonization, please read them:
1440
+
1441
+ * http://www.mikeperham.com/2014/09/22/dont-daemonize-your-daemons/
1442
+ * http://www.mikeperham.com/2014/07/07/use-runit/
1443
+
1444
+ If, anyway, you need something like `rails server -d`, why not try `bundle exec unicorn -D` instead? In my (limited) experience, it worked out of the box (well, had to add `gem 'unicorn'` to `Gemfile` first).
1445
+
1430
1446
 
1431
1447
  ## support
1432
1448
 
@@ -39,7 +39,7 @@ module Rufus
39
39
  require 'rufus/scheduler/job_array'
40
40
  require 'rufus/scheduler/locks'
41
41
 
42
- VERSION = '3.1.4'
42
+ VERSION = '3.1.5'
43
43
 
44
44
  #
45
45
  # A common error class for rufus-scheduler
@@ -151,6 +151,7 @@ America/Argentina/Catamarca America/Indiana/Indianapolis
151
151
  America/North_Dakota/New_Salem America/Argentina/Rio_Gallegos
152
152
  America/Argentina/Buenos_Aires America/Argentina/ComodRivadavia
153
153
  ]
154
+ TIMEZONEs = TIMEZONES.collect(&:downcase)
154
155
 
155
156
  ##
156
157
  ## http://en.wikipedia.org/wiki/List_of_time_zone_abbreviations
@@ -121,17 +121,23 @@ class Rufus::Scheduler
121
121
  def self.is_timezone?(str)
122
122
 
123
123
  return false if str == nil
124
+ return false if str == '*'
125
+
126
+ return false if str.index('#')
127
+ # "sun#2", etc... On OSX would go all the way to true
124
128
 
125
129
  return true if Time.zone_offset(str)
126
- return true if str == 'Zulu' || str == 'UTC'
127
130
 
128
131
  return !! (::TZInfo::Timezone.get(str) rescue nil) if defined?(::TZInfo)
129
132
 
133
+ return true if TIMEZONES.include?(str)
134
+ return true if TIMEZONEs.include?(str)
135
+
130
136
  t = ZoTime.new(0, str).time
131
137
 
132
138
  return false if t.zone == ''
133
139
  return false if t.zone == 'UTC'
134
- return false if str.match(/[a-z]/) && str.start_with?(t.zone)
140
+ return false if t.utc_offset == 0 && str.start_with?(t.zone)
135
141
  # 3 common fallbacks...
136
142
 
137
143
  return false if RUBY_PLATFORM.include?('java') && ! envtzable?(str)
@@ -100,12 +100,12 @@ describe Rufus::Scheduler::CronLine do
100
100
 
101
101
  it 'rejects invalid weekday expressions' do
102
102
 
103
- expect { cl '0 17 * * MON_FRI' }.to raise_error
103
+ expect { cl '0 17 * * MON_FRI' }.to raise_error(ArgumentError)
104
104
  # underline instead of dash
105
105
 
106
- expect { cl '* * * * 9' }.to raise_error
107
- expect { cl '* * * * 0-12' }.to raise_error
108
- expect { cl '* * * * BLABLA' }.to raise_error
106
+ expect { cl '* * * * 9' }.to raise_error(ArgumentError)
107
+ expect { cl '* * * * 0-12' }.to raise_error(ArgumentError)
108
+ expect { cl '* * * * BLABLA' }.to raise_error(ArgumentError)
109
109
  end
110
110
 
111
111
  it 'rejects invalid cronlines' do
@@ -125,8 +125,8 @@ describe Rufus::Scheduler::CronLine do
125
125
  '* * * * * * America/New_York',
126
126
  [ nil, nil, nil, nil, nil, nil, nil, 'America/New_York' ])
127
127
 
128
- expect { cl '* * * * * NotATimeZone' }.to raise_error
129
- expect { cl '* * * * * * NotATimeZone' }.to raise_error
128
+ expect { cl '* * * * * NotATimeZone' }.to raise_error(ArgumentError)
129
+ expect { cl '* * * * * * NotATimeZone' }.to raise_error(ArgumentError)
130
130
  end
131
131
 
132
132
  it 'interprets cron strings with / (slashes) correctly' do
@@ -432,7 +432,7 @@ describe Rufus::Scheduler::CronLine do
432
432
  eq(local(1970,1,1,1,1,50))
433
433
  )
434
434
  expect(nt('*/10 * * * * *',local(1970,1,1,1,1,50))).to(
435
- eq(local(1970,1,1,1,2,00)) # FAILS: skips a minute to 2:50, not 2:00
435
+ eq(local(1970,1,1,1,2,00))
436
436
  )
437
437
  end
438
438
  end
@@ -450,9 +450,9 @@ describe Rufus::Scheduler::CronLine do
450
450
  # ...
451
451
  [ '*/10 * * * * *', local(1970,1,1,1,1,49), 1 ], # 9 sec to 50s mark
452
452
  [ '*/10 * * * * *', local(1970,1,1,1,1,50), 0 ], # 0 sec to 50s mark
453
- [ '*/10 * * * * *', local(1970,1,1,1,1,51), 9 ], # FAILS: gives 59
454
- ].each do |cronline,now,sec|
455
- it "understands that next_second('#{cronline}',#{now}) is #{sec}" do
453
+ [ '*/10 * * * * *', local(1970,1,1,1,1,51), 9 ],
454
+ ].each do |cronline, now, sec|
455
+ it "ensures that next_second('#{cronline}', #{now}) is #{sec}" do
456
456
  expect(ns(cronline,now)).to eq(sec)
457
457
  end
458
458
  end
metadata CHANGED
@@ -1,78 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rufus-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.4
5
- prerelease:
4
+ version: 3.1.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - John Mettraux
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-08-28 00:00:00.000000000 Z
11
+ date: 2015-09-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: 2.13.0
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: 2.13.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: chronic
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: tzinfo
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  description: job scheduler for Ruby (at, cron, in and every jobs).
@@ -82,70 +73,69 @@ executables: []
82
73
  extensions: []
83
74
  extra_rdoc_files: []
84
75
  files:
76
+ - CHANGELOG.txt
77
+ - CREDITS.txt
78
+ - LICENSE.txt
79
+ - README.md
85
80
  - Rakefile
81
+ - TODO.txt
86
82
  - lib/rufus-scheduler.rb
87
83
  - lib/rufus/scheduler.rb
88
- - lib/rufus/scheduler/locks.rb
89
- - lib/rufus/scheduler/zotime.rb
90
84
  - lib/rufus/scheduler/cronline.rb
91
- - lib/rufus/scheduler/util.rb
85
+ - lib/rufus/scheduler/job_array.rb
92
86
  - lib/rufus/scheduler/jobs.rb
87
+ - lib/rufus/scheduler/locks.rb
88
+ - lib/rufus/scheduler/util.rb
93
89
  - lib/rufus/scheduler/zones.rb
94
- - lib/rufus/scheduler/job_array.rb
95
- - spec/job_spec.rb
96
- - spec/schedule_in_spec.rb
97
- - spec/zotime_spec.rb
98
- - spec/spec_helper.rb
90
+ - lib/rufus/scheduler/zotime.rb
91
+ - rufus-scheduler.gemspec
92
+ - spec/basics_spec.rb
93
+ - spec/cronline_spec.rb
94
+ - spec/error_spec.rb
99
95
  - spec/job_array_spec.rb
100
- - spec/schedule_interval_spec.rb
101
96
  - spec/job_at_spec.rb
102
- - spec/schedule_at_spec.rb
103
- - spec/error_spec.rb
104
- - spec/lock_spec.rb
105
- - spec/schedule_cron_spec.rb
97
+ - spec/job_cron_spec.rb
98
+ - spec/job_every_spec.rb
99
+ - spec/job_in_spec.rb
106
100
  - spec/job_interval_spec.rb
107
101
  - spec/job_repeat_spec.rb
108
- - spec/schedule_every_spec.rb
109
- - spec/threads_spec.rb
110
- - spec/cronline_spec.rb
102
+ - spec/job_spec.rb
103
+ - spec/lock_custom_spec.rb
104
+ - spec/lock_flock_spec.rb
111
105
  - spec/lock_lockfile_spec.rb
112
- - spec/job_in_spec.rb
106
+ - spec/lock_spec.rb
113
107
  - spec/parse_spec.rb
108
+ - spec/schedule_at_spec.rb
109
+ - spec/schedule_cron_spec.rb
110
+ - spec/schedule_every_spec.rb
111
+ - spec/schedule_in_spec.rb
112
+ - spec/schedule_interval_spec.rb
114
113
  - spec/scheduler_spec.rb
115
- - spec/lock_custom_spec.rb
116
- - spec/basics_spec.rb
117
- - spec/job_cron_spec.rb
118
- - spec/job_every_spec.rb
119
- - spec/lock_flock_spec.rb
120
- - rufus-scheduler.gemspec
121
- - CHANGELOG.txt
122
- - TODO.txt
123
- - LICENSE.txt
124
- - CREDITS.txt
125
- - README.md
114
+ - spec/spec_helper.rb
115
+ - spec/threads_spec.rb
116
+ - spec/zotime_spec.rb
126
117
  homepage: http://github.com/jmettraux/rufus-scheduler
127
118
  licenses:
128
119
  - MIT
120
+ metadata: {}
129
121
  post_install_message:
130
122
  rdoc_options: []
131
123
  require_paths:
132
124
  - lib
133
125
  required_ruby_version: !ruby/object:Gem::Requirement
134
- none: false
135
126
  requirements:
136
- - - ! '>='
127
+ - - ">="
137
128
  - !ruby/object:Gem::Version
138
129
  version: '0'
139
130
  required_rubygems_version: !ruby/object:Gem::Requirement
140
- none: false
141
131
  requirements:
142
- - - ! '>='
132
+ - - ">="
143
133
  - !ruby/object:Gem::Version
144
134
  version: '0'
145
135
  requirements: []
146
136
  rubyforge_project: rufus
147
- rubygems_version: 1.8.23
137
+ rubygems_version: 2.2.2
148
138
  signing_key:
149
- specification_version: 3
139
+ specification_version: 4
150
140
  summary: job scheduler for Ruby (at, cron, in and every jobs)
151
141
  test_files: []