chronic_cron 0.2.22 → 0.2.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/chronic_cron.rb +40 -5
- metadata +12 -12
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d7c7abf5cc1f534726e758672d9c323f78e3426
|
4
|
+
data.tar.gz: fea193074527c2868b5d9bb0bcdffc82375df313
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b91b1730c74cbe6c6d336e298c7cdb4b3efe034dc72b05cb711326e899295570ea6c74ffa72574efc81864231ef5ab3446ceadf9b2908a4faf194bcb67836f5
|
7
|
+
data.tar.gz: 542d93e2005e754b5a37697674a12bb20908f4fe90ae01dbba0a72a764c2b604915133e5c1ff0a173f7410f35f4ba6427b839fca3cb5d2dae905a4d8d81137aa
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/chronic_cron.rb
CHANGED
@@ -8,6 +8,8 @@ require 'cron_format'
|
|
8
8
|
require 'timetoday'
|
9
9
|
|
10
10
|
|
11
|
+
WEEK = DAY * 7
|
12
|
+
|
11
13
|
class ChronicCron
|
12
14
|
include AppRoutes
|
13
15
|
|
@@ -22,6 +24,7 @@ class ChronicCron
|
|
22
24
|
expressions(@params)
|
23
25
|
|
24
26
|
expression = find_expression(s.sub(/^(?:on|at|from|starting)\s+/,''))
|
27
|
+
|
25
28
|
@cf = CronFormat.new(expression, now)
|
26
29
|
@to_expression = @cf.to_expression
|
27
30
|
|
@@ -160,7 +163,7 @@ class ChronicCron
|
|
160
163
|
# e.g. starting 05-Aug@15:03 every 2 weeks
|
161
164
|
get /(.*) every (\d) weeks/ do |raw_date, interval|
|
162
165
|
|
163
|
-
t = Chronic.parse(raw_date)
|
166
|
+
t = Chronic.parse(raw_date, :now => @now)
|
164
167
|
mins, hrs, day, month, year = t.to_a.values_at(1,2,3,4,5)
|
165
168
|
"%s %s %s %s %s/%s %s" % [mins, hrs, day, month, t.wday, interval, year]
|
166
169
|
end
|
@@ -168,7 +171,7 @@ class ChronicCron
|
|
168
171
|
# e.g. from 05-Aug@12:34 fortnightly
|
169
172
|
get /(.*)\s+(?:biweekly|fortnightly)/ do |raw_date|
|
170
173
|
|
171
|
-
t = Chronic.parse(raw_date)
|
174
|
+
t = Chronic.parse(raw_date, :now => @now)
|
172
175
|
mins, hrs, day, month, year = t.to_a.values_at(1,2,3,4,5)
|
173
176
|
"%s %s %s %s %s/2 %s" % [mins, hrs, day, month, t.wday, year]
|
174
177
|
end
|
@@ -176,19 +179,51 @@ class ChronicCron
|
|
176
179
|
# e.g. from 06-Aug@1pm every week
|
177
180
|
get /(.*)\s+(?:weekly|every week)/ do |raw_date|
|
178
181
|
|
179
|
-
t = Chronic.parse(raw_date)
|
182
|
+
t = Chronic.parse(raw_date, :now => @now)
|
180
183
|
mins, hrs, day, month, year = t.to_a.values_at(1,2,3,4,5)
|
181
184
|
"%s %s %s %s %s %s" % [mins, hrs, day, month, t.wday, year]
|
182
185
|
end
|
183
186
|
|
187
|
+
# e.g. first thursday of each month at 7:30pm
|
188
|
+
nday = '(\w+(?:st|rd|nd))\s+' + weekday + '\s+'
|
189
|
+
get /#{nday}(?:of\s+)?(?:the|each|every)\s+month(?:\s+at\s+([^\s]+))?/ do
|
190
|
+
|nth_week, day_of_week, time|
|
191
|
+
|
192
|
+
month = @now.month
|
193
|
+
|
194
|
+
h = {
|
195
|
+
/first|1st/ => 0,
|
196
|
+
/second|2nd/ => 1,
|
197
|
+
/third|3rd/ => 2,
|
198
|
+
/fourth|4th|last/ => 3
|
199
|
+
}
|
200
|
+
|
201
|
+
_, nweek = h.find{|k,_| nth_week[k]}
|
202
|
+
|
203
|
+
def make_date(day_of_week, month, time, nweek)
|
204
|
+
|
205
|
+
Chronic.parse([day_of_week,month,time].join(' '), :now => @now) \
|
206
|
+
+ WEEK * nweek
|
207
|
+
end
|
208
|
+
|
209
|
+
months = %w(jan feb mar apr may jun jul aug sep oct nov dec)
|
210
|
+
t = make_date day_of_week, months[month-1], time, nweek
|
211
|
+
|
212
|
+
if t < Time.now
|
213
|
+
t = make_date(day_of_week, months.rotate[month-1], time, nweek)
|
214
|
+
end
|
215
|
+
|
216
|
+
"%s %s %s %s * %s" % t.to_a.values_at(1,2,3,4,5)
|
217
|
+
end
|
218
|
+
|
184
219
|
# e.g. 04-Aug@12:34
|
185
220
|
get '*' do
|
186
221
|
|
187
|
-
t = Chronic.parse(params[:input])
|
222
|
+
t = Chronic.parse(params[:input], :now => @now)
|
188
223
|
"%s %s %s %s * %s" % t.to_a.values_at(1,2,3,4,5)
|
189
224
|
end
|
190
225
|
end
|
191
226
|
|
192
227
|
alias find_expression run_route
|
193
228
|
|
194
|
-
end
|
229
|
+
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.
|
4
|
+
version: 0.2.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -29,62 +29,62 @@ cert_chain:
|
|
29
29
|
aYYwh4InyS/QZr4LG0nh0TuYVP5vwm1cCSlLlo4dlv7bl7Q4y815j70z8O4oUrT8
|
30
30
|
5oSIzmlVDEDmwAibYqdf+aHqmum1mkYW
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2013-
|
32
|
+
date: 2013-10-31 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: app-routes
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: cron_format
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: chronic
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
type: :runtime
|
70
70
|
prerelease: false
|
71
71
|
version_requirements: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: timetoday
|
78
78
|
requirement: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
type: :runtime
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
description:
|
@@ -104,12 +104,12 @@ require_paths:
|
|
104
104
|
- lib
|
105
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
|
-
- -
|
112
|
+
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
metadata.gz.sig
CHANGED
Binary file
|