chronic_cron 0.2.33 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a7bcc699124b398877ec9336145f48360efd1367
4
- data.tar.gz: 7d6100481983fa65e173c3daca2c328f508aa396
3
+ metadata.gz: 84b65bc4bc5c252fb22450e67c05a16f64024ae7
4
+ data.tar.gz: 130e04f60a902e99a43e7f9f16e1f751d4a0a65e
5
5
  SHA512:
6
- metadata.gz: a7730d6a3f63e84a56cfb9e8e5568a7e28fb4aa0536f996ab081b93308880873da26e2f579907fb3043c846a487b279510be92541f6c564fe7cf6a8552fbc220
7
- data.tar.gz: a5ff9e173653fa24d5930f8afcc2c009dd8754245b55e167b4c7caca193a12b081859183bf0abf017f296771f49e42ecaeab71587bf2eea7a5000a3c09bdc45a
6
+ metadata.gz: d2cfd9db55885dd93049687fc463d3c747d4fa527c51bb19b7c3c489f44ad35bdc0ba486bbc5d542432e6e0ede35a3aa7b41d8e657a787ccd178346d6dd4ef1c
7
+ data.tar.gz: ea3ef3afac95a724db0220d546084aff31166b4f1ea67f9409cdd62f9a3a370d891d72035e4d5f214b24251c43c169d7f6ec0b34c33befc93545328f3a1ddd25
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -41,7 +41,7 @@ class ChronicCron
41
41
 
42
42
  r = '[0-9\*,\?\/\-]+'
43
43
  daily = '(?:every day|daily)'
44
-
44
+
45
45
  # e.g. 00 5 15 * *
46
46
  get /(#{r}\s+#{r}\s+#{r}\s#{r}\s#{r})(\s#{r})?/ do
47
47
  "%s%s" % params[:captures]
@@ -103,7 +103,7 @@ class ChronicCron
103
103
  get('monthly') {'0 0 1 * *'}
104
104
  get('yearly') {'0 0 1 1 *'}
105
105
  get('annually') {'0 0 1 1 *'}
106
-
106
+
107
107
  weekday = '((?:mon|tue|wed|thu|fri|sat|sun)\w*)'
108
108
 
109
109
  # e.g. at 10:30pm on every Monday
@@ -180,11 +180,20 @@ class ChronicCron
180
180
  wday = a.index(a.grep(/#{day_of_week}/i).first)
181
181
 
182
182
  raw_time ||= '6:00am'
183
+
183
184
  minute, hour = Chronic.parse(raw_time).to_a[1,2]
184
185
  "%s %s %s * %s" % [minute, hour, day_range, wday]
185
186
 
186
187
  end
188
+
187
189
 
190
+ # e.g. every 2nd tuesday at 4:40pm
191
+ get /every\s+2nd\s+#{weekday}\s+at\s+(\d{1,2})(?::(\d{1,2}))?([ap]m)/i do
192
+ |wday, raw_hrs, mins, meridiem, |
193
+ hrs = in24hrs(raw_hrs, meridiem)
194
+ "%s %s * * %s/2" % [mins.to_i, hrs , wday]
195
+ end
196
+
188
197
  # e.g. every tuesday at 4:40pm
189
198
  get /every\s+#{weekday}\s+at\s+(\d{1,2}):(\d{1,2})([ap]m)/i do
190
199
  |wday, raw_hrs, mins, meridiem, |
@@ -192,54 +201,24 @@ class ChronicCron
192
201
  "%s %s * * %s" % [mins, hrs , wday]
193
202
  end
194
203
 
195
-
196
204
 
197
205
  # e.g. every 2nd week at 6am starting from 7th Jan
198
- get /every (\w+) week\s+(?:at\s+([^\s]+)\s+starting\s+)?(?:from\s+)?(.*)/ do
199
- |nth_week, raw_time, raw_date|
200
-
201
- # |nth_week, day_of_week, time|
206
+ get /every 2nd week\s+at\s+([^\s]+)/ do |raw_time|
202
207
 
208
+ t = Chronic.parse(raw_time, :now => @now)
203
209
 
204
-
205
- h = {
206
- /first|1st/i => 0,
207
- /second|2nd/i => 1,
208
- /third|3rd/i => 2,
209
- /fourth|4th|last/i => 3
210
- }
211
-
212
- _, nweek = h.find{|k,_| nth_week[k]}
213
-
214
- month = @now.month
215
- date = Time.local(@now.year, month, 1)
216
- t = Chronic.parse(raw_date + ' ' + raw_time, :now => date)
217
-
218
- def make_date(day_of_week, month, time, nweek)
219
-
220
- Chronic.parse([day_of_week,month,time].join(' '), :now => @now) \
221
- + WEEK * nweek
222
- end
223
-
224
- if t < @now
225
- day_of_week = Date::DAYNAMES[t.wday]
226
- months = Date::MONTHNAMES
227
- t = make_date(day_of_week, months.rotate[month], raw_time, nweek)
228
- end
229
-
230
- "%s %s %s %s * %s" % t.to_a.values_at(1,2,3,4,5)
210
+ "%s %s * * %s/2" % [t.min,t.hour,t.wday]
231
211
 
232
212
  end
233
213
 
234
214
  # e.g. every 2 weeks at 6am starting from 7th Jan
235
- get /every (\w+) weeks\s+(?:at\s+([^\s]+)\s+starting\s+)?(?:from\s+)?(.*)/ do
236
- |interval, raw_time, raw_date|
215
+ get /every (\w+) weeks\s+(?:at\s+([^\s]+))?/ do |interval, raw_time|
237
216
 
238
- t = Chronic.parse(raw_date + ' ' + raw_time, :now => @now)
217
+ t = Chronic.parse(raw_time, :now => @now)
239
218
  t += WEEK * interval.to_i until t > @now
240
- mins, hrs, day, month, year = t.to_a.values_at(1,2,3,4,5)
219
+ mins, hrs = t.to_a.values_at(1,2)
241
220
 
242
- "%s %s %s %s %s/%s %s" % [mins, hrs, day, month, t.wday, interval, year]
221
+ "%s %s * * %s/%s" % [mins, hrs, t.wday, interval]
243
222
  end
244
223
 
245
224
 
@@ -247,8 +226,8 @@ class ChronicCron
247
226
  get /(.*) every (\d) weeks/ do |raw_date, interval|
248
227
 
249
228
  t = Chronic.parse(raw_date, :now => @now)
250
- mins, hrs, day, month, year = t.to_a.values_at(1,2,3,4,5)
251
- "%s %s %s %s %s/%s %s" % [mins, hrs, day, month, t.wday, interval, year]
229
+ mins, hrs = t.to_a.values_at(1,2)
230
+ "%s %s * * %s/%s" % [mins, hrs, t.wday, interval]
252
231
  end
253
232
 
254
233
  # e.g. from 05-Aug@12:34 fortnightly
@@ -269,7 +248,7 @@ class ChronicCron
269
248
 
270
249
  # e.g. 04-Aug@12:34
271
250
  get '*' do
272
-
251
+
273
252
  t = Chronic.parse(params[:input], :now => @now)
274
253
  "%s %s %s %s * %s" % t.to_a.values_at(1,2,3,4,5)
275
254
  end
@@ -286,4 +265,4 @@ class ChronicCron
286
265
 
287
266
  alias find_expression run_route
288
267
 
289
- end
268
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chronic_cron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.33
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,64 +31,88 @@ cert_chain:
31
31
  nWO4x6WpqjcmB1Woj5XGJhRoWqPEdpB7dv+oitT+rBDJnsYAVXx50tBSE8iv+u11
32
32
  9OUH3bEVRYl7Cg==
33
33
  -----END CERTIFICATE-----
34
- date: 2014-02-15 00:00:00.000000000 Z
34
+ date: 2015-01-16 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: app-routes
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.1'
40
43
  - - ">="
41
44
  - !ruby/object:Gem::Version
42
- version: '0'
45
+ version: 0.1.18
43
46
  type: :runtime
44
47
  prerelease: false
45
48
  version_requirements: !ruby/object:Gem::Requirement
46
49
  requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.1'
47
53
  - - ">="
48
54
  - !ruby/object:Gem::Version
49
- version: '0'
55
+ version: 0.1.18
50
56
  - !ruby/object:Gem::Dependency
51
57
  name: cron_format
52
58
  requirement: !ruby/object:Gem::Requirement
53
59
  requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.2'
54
63
  - - ">="
55
64
  - !ruby/object:Gem::Version
56
- version: '0'
65
+ version: 0.2.0
57
66
  type: :runtime
58
67
  prerelease: false
59
68
  version_requirements: !ruby/object:Gem::Requirement
60
69
  requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '0.2'
61
73
  - - ">="
62
74
  - !ruby/object:Gem::Version
63
- version: '0'
75
+ version: 0.2.0
64
76
  - !ruby/object:Gem::Dependency
65
77
  name: chronic
66
78
  requirement: !ruby/object:Gem::Requirement
67
79
  requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.10'
68
83
  - - ">="
69
84
  - !ruby/object:Gem::Version
70
- version: '0'
85
+ version: 0.10.2
71
86
  type: :runtime
72
87
  prerelease: false
73
88
  version_requirements: !ruby/object:Gem::Requirement
74
89
  requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '0.10'
75
93
  - - ">="
76
94
  - !ruby/object:Gem::Version
77
- version: '0'
95
+ version: 0.10.2
78
96
  - !ruby/object:Gem::Dependency
79
97
  name: timetoday
80
98
  requirement: !ruby/object:Gem::Requirement
81
99
  requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.1'
82
103
  - - ">="
83
104
  - !ruby/object:Gem::Version
84
- version: '0'
105
+ version: 0.1.9
85
106
  type: :runtime
86
107
  prerelease: false
87
108
  version_requirements: !ruby/object:Gem::Requirement
88
109
  requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '0.1'
89
113
  - - ">="
90
114
  - !ruby/object:Gem::Version
91
- version: '0'
115
+ version: 0.1.9
92
116
  description:
93
117
  email: james@r0bertson.co.uk
94
118
  executables: []
@@ -108,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
132
  requirements:
109
133
  - - ">="
110
134
  - !ruby/object:Gem::Version
111
- version: '0'
135
+ version: 2.1.2
112
136
  required_rubygems_version: !ruby/object:Gem::Requirement
113
137
  requirements:
114
138
  - - ">="
@@ -116,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
140
  version: '0'
117
141
  requirements: []
118
142
  rubyforge_project:
119
- rubygems_version: 2.1.11
143
+ rubygems_version: 2.2.2
120
144
  signing_key:
121
145
  specification_version: 4
122
146
  summary: chronic_cron
metadata.gz.sig CHANGED
Binary file