chronic_cron 0.2.33 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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