chronic_cron 0.3.6 → 0.3.7
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 +4 -1
- data/lib/chronic_cron.rb +18 -7
- metadata +18 -18
- 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: 87c9ca865ed518099e452b2bdb060caec364df00
|
4
|
+
data.tar.gz: 4138b72f8a680693fbb989a0978bb940165a5f12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 971534edf8e75f73379dfa927c936eca189f21aa9b43fcd928c3c5070532624abaa7318a8a7f5245d66f05ea0a2fd199419b1443a89b50aba8b77ad440eb85f0
|
7
|
+
data.tar.gz: 2e56ad254692427c0856d7292314a253eda668a409f7e3c658b67c5349f4d7b38cd6776cee6b03944123f4637b23d61293aa31259293c8958cc134cdcbec7dbf
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
data/lib/chronic_cron.rb
CHANGED
@@ -13,9 +13,9 @@ class ChronicCron
|
|
13
13
|
|
14
14
|
attr_reader :to_expression
|
15
15
|
|
16
|
-
def initialize(s, now=Time.now)
|
16
|
+
def initialize(s, now=Time.now, log: nil)
|
17
17
|
|
18
|
-
@now = now
|
18
|
+
@now, @log = now, log
|
19
19
|
|
20
20
|
super()
|
21
21
|
@params = {input: s}
|
@@ -49,6 +49,8 @@ class ChronicCron
|
|
49
49
|
protected
|
50
50
|
|
51
51
|
def expressions(params)
|
52
|
+
|
53
|
+
log = @log
|
52
54
|
|
53
55
|
r = '[0-9\*,\?\/\-]+'
|
54
56
|
daily = '(?:every day|daily)'
|
@@ -64,7 +66,7 @@ class ChronicCron
|
|
64
66
|
end
|
65
67
|
|
66
68
|
# e.g. every 30mins from 8:00am until 8:00pm mon-fri
|
67
|
-
get /every\s+(\d+)\s*mins\s+from\s+(\d{1,2}):(\d{1,2})([ap]m)(?:\s+until\s+|\s*-\s*)(\d{1,2}):\d{1,2}([ap]m)\s+(\w+\-\w+)/ do
|
69
|
+
get /every\s+(\d+)\s*mins\s+from\s+(\d{1,2}):(\d{1,2})([ap]m)(?:\s+until\s+|\s*-\s*)(\d{1,2}):\d{1,2}([ap]m)\s+(\w+\-\w+)/x do
|
68
70
|
|interval_mins, r_hrs1, mins1, meridiem1, r_hrs2, meridiem2, wdays|
|
69
71
|
|
70
72
|
hrs1 = meridiem1 == 'pm' ? r_hrs1.to_i + 12 : r_hrs1
|
@@ -140,7 +142,12 @@ class ChronicCron
|
|
140
142
|
get(/every hour/){ "0 * * * *"}
|
141
143
|
|
142
144
|
# e.g. every 2 days
|
143
|
-
get(/every (\d{1,2}) days?/)
|
145
|
+
get(/every (\d{1,2}) days?/) do |days|
|
146
|
+
|
147
|
+
log.info 'ChronicCron/expressions/get: r130' if log
|
148
|
+
"* * */%s * *" % [days]
|
149
|
+
end
|
150
|
+
|
144
151
|
get(/#{daily}/){ "0 0 * * *"}
|
145
152
|
|
146
153
|
get /(?:any\s?time)?(?: today)? between (\S+) and (\S+)/ do |s1, s2|
|
@@ -221,6 +228,7 @@ class ChronicCron
|
|
221
228
|
get /every\s+2nd\s+#{weekday}\s+at\s+(\d{1,2})(?::(\d{1,2}))?([ap]m)/i do
|
222
229
|
|wday, raw_hrs, mins, meridiem, |
|
223
230
|
hrs = in24hrs(raw_hrs, meridiem)
|
231
|
+
log.info 'ChronicCron/expressions/get: r230' if log
|
224
232
|
"%s %s * * %s/2" % [mins.to_i, hrs , wday]
|
225
233
|
end
|
226
234
|
|
@@ -236,7 +244,8 @@ class ChronicCron
|
|
236
244
|
get /every 2nd week\s+at\s+([^\s]+)/ do |raw_time|
|
237
245
|
|
238
246
|
t = Chronic.parse(raw_time, :now => @now)
|
239
|
-
|
247
|
+
log.info 'ChronicCron/expressions/get: r250' if log
|
248
|
+
|
240
249
|
"%s %s * * %s/2" % [t.min,t.hour,t.wday]
|
241
250
|
|
242
251
|
end
|
@@ -250,11 +259,13 @@ class ChronicCron
|
|
250
259
|
end
|
251
260
|
|
252
261
|
# e.g. every 2 weeks at 6am starting from 7th Jan
|
253
|
-
get
|
262
|
+
get /^every (\w+) weeks(?:\s+at\s+([^\s]+))?/ do |interval, raw_time|
|
254
263
|
|
255
|
-
t = Chronic.parse(raw_time, :now => @now)
|
264
|
+
t = raw_time ? Chronic.parse(raw_time, :now => @now) : @now
|
256
265
|
t += WEEK * interval.to_i until t > @now
|
257
266
|
mins, hrs = t.to_a.values_at(1,2)
|
267
|
+
|
268
|
+
log.info 'ChronicCron/expressions/get: r270' if log
|
258
269
|
|
259
270
|
"%s %s * * %s/%s" % [mins, hrs, t.wday, interval]
|
260
271
|
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.3.
|
4
|
+
version: 0.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -12,26 +12,26 @@ cert_chain:
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
|
14
14
|
YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
|
15
|
-
|
15
|
+
8ixkARkWAmV1MB4XDTE3MTExNDIzMzEwNVoXDTE4MTExNDIzMzEwNVowSDESMBAG
|
16
16
|
A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
|
17
17
|
EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
ggEBALoP6xDp6zr7JbSKtgrtFy1wXlw+gWUsUgo1HGm4JYsHi8EIiEqalydehRVy
|
19
|
+
lND168CJmdruvmvO7bjfvNzGXrYO5mRAzL54PLr7lzEbHNS3Xpac6EBbz7vU4bqV
|
20
|
+
Q1RGai6youjvBhH8AkUDKeVDu7oLYJhff7CIXH2QJH92XXVAO5RnY7u/K/lEjczZ
|
21
|
+
2bnw2R383aRi+6deHmzRtUK3nbQgxhZXcjm27Xb8aU+OPmmfvx/ZbdVxIb6SEVGO
|
22
|
+
964YEOiRX1KbbnifRtfKgLCySF59jZA7KIZNRGOkerfOCNrk/D8GVECWL5erLKbw
|
23
|
+
FipxWxCgik/d53/Tj/rtVI9jfGsCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
24
|
+
DwQEAwIEsDAdBgNVHQ4EFgQU+n2rEOLx53rnpxbluXFisamq6cEwJgYDVR0RBB8w
|
25
25
|
HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAjcAZZRIC
|
27
|
+
hlLlASQ8THr7VLOa09WmEhlQ8QPm8HwiKoN0dTrq7V+tXyVVagJeVK1Lz/bsE4D+
|
28
|
+
qZdibGXJ6m4uF3V99qsu+3yQE6hJCT8WL1dc8V6Gv0SL/6aNU+0+wFxa2zPONhJ3
|
29
|
+
kCK3BJoBrAF4DycYLZ7NNi9Gk2UjFery1+51XOozsnIjawiyS1x/vx6LgO+ZxDFy
|
30
|
+
KLkHJMGcM015IMO7DrDYieCXK7FEJ1bF2OTF4nuOQo5TP7hFugK7sW7EC3kUVLly
|
31
|
+
q95F5t9M4vy0Q8baeY7AJ7+f6Z5LLLCK4MyPO2y4aYy209dwdEY2zHZOA+CLkPEU
|
32
|
+
p0BvK7yY4ZqPZw==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2017-
|
34
|
+
date: 2017-11-14 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: app-routes
|
@@ -140,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
version: '0'
|
141
141
|
requirements: []
|
142
142
|
rubyforge_project:
|
143
|
-
rubygems_version: 2.6.
|
143
|
+
rubygems_version: 2.6.13
|
144
144
|
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: Converts a human-readable time (e.g. 10:15 daily) into a cron format (e,g,
|
metadata.gz.sig
CHANGED
Binary file
|