chronic_cron 0.3.6 → 0.3.7
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 +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
|