cronspeak 0.1.6 → 0.2.0
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/cronspeak.rb +14 -24
- metadata +18 -19
- 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: df8bd5c0ec37ff03435123527aed4d6b91617c6d
|
4
|
+
data.tar.gz: add6f5b6d785e22ccbcaf5d00c1d2b4f1cfbf470
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56d8bbc77f4e9b418be69b109603bd480d4567141287d920fcbd9a0471cd1d680326ab9ec7fd6a8ef144d1cb9b470366ba2e0ec3ceb63c44b150d102bb695de3
|
7
|
+
data.tar.gz: 5b4b65e42751d75241e147ec9657b5117c5a13e9b2047dffa3df2064f587ab3b29b071ab875efa09e260aed4dd2910e8f486afb7efcf973de7d54e8f8e4b8b3a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/cronspeak.rb
CHANGED
@@ -6,7 +6,7 @@ require 'date'
|
|
6
6
|
require 'time'
|
7
7
|
|
8
8
|
module Ordinal
|
9
|
-
refine
|
9
|
+
refine Integer do
|
10
10
|
|
11
11
|
def ordinal
|
12
12
|
self.to_s + ( (10...20).include?(self) ? 'th' :
|
@@ -25,7 +25,7 @@ class CronSpeak
|
|
25
25
|
|
26
26
|
@count = 0
|
27
27
|
m, h, d, mon, raw_dow = s.scan(/([\d,\*-\/]+)\s*/).flatten(1)
|
28
|
-
dow(raw_dow)
|
28
|
+
@dow = dow(raw_dow)
|
29
29
|
|
30
30
|
@to_s = if m+h =~ /^\d+$/ then
|
31
31
|
[Time.parse(h + ':' + m)\
|
@@ -39,13 +39,11 @@ class CronSpeak
|
|
39
39
|
private
|
40
40
|
|
41
41
|
def mins(m='*')
|
42
|
-
|
43
|
-
return 'every minute of ' if m == '*'
|
44
42
|
|
45
|
-
|
43
|
+
case m
|
44
|
+
when /^\*$/ then 'every minute of '
|
46
45
|
when /^\*\//
|
47
|
-
|
48
|
-
"every %s minute of " % [m.to_i.ordinal]
|
46
|
+
"every %s minute of " % [m[/^\*\/(\d+)/,1].to_i.ordinal]
|
49
47
|
when /,/
|
50
48
|
"%s minutes of " % m.split(/,/).map {|x| x.to_i.ordinal }.join(' and ')
|
51
49
|
when /\-/
|
@@ -55,7 +53,6 @@ class CronSpeak
|
|
55
53
|
"%s minute of " % [m.to_i.ordinal]
|
56
54
|
end
|
57
55
|
|
58
|
-
return r
|
59
56
|
end
|
60
57
|
|
61
58
|
def hrs(h='*')
|
@@ -65,9 +62,7 @@ class CronSpeak
|
|
65
62
|
@count += 2
|
66
63
|
|
67
64
|
return case h
|
68
|
-
when /^\*\//
|
69
|
-
h = h[/^\*\/(\d+)/,1]
|
70
|
-
" of every %s hour" % [h.to_i.ordinal]
|
65
|
+
when /^\*\// then " of every %s hour" % [h[/^\*\/(\d+)/,1].to_i.ordinal]
|
71
66
|
when /,/
|
72
67
|
h.split(/,/)\
|
73
68
|
.map {|x| Time.parse(x+':00').strftime("%l%P").lstrip }.join(' and ')
|
@@ -87,12 +82,10 @@ class CronSpeak
|
|
87
82
|
return " %s in " % @dow if @count >= 8
|
88
83
|
|
89
84
|
return case d
|
90
|
-
when /^\*$/ then
|
91
|
-
' every day'
|
85
|
+
when /^\*$/ then ' every day'
|
92
86
|
when/^\*\//
|
93
|
-
d = d[/^\*\/(\d+)/,1]
|
94
87
|
@count += 4
|
95
|
-
" of every %s day" % [d.to_i.ordinal]
|
88
|
+
" of every %s day" % [d[/^\*\/(\d+)/,1].to_i.ordinal]
|
96
89
|
when /,/
|
97
90
|
@count += 8
|
98
91
|
"the %s of " % d.split(/,/).map {|x| x.to_i.ordinal }.join(' and ')
|
@@ -118,15 +111,13 @@ class CronSpeak
|
|
118
111
|
s + 'every month'
|
119
112
|
end
|
120
113
|
|
121
|
-
when /^\*\//
|
122
|
-
mon = mon[/^\*\/(\d+)/,1]
|
123
|
-
@count += 16
|
124
|
-
" of every %s month" % [mon.to_i.ordinal]
|
114
|
+
when /^\*\// then " of every %s month" % [mon[/^\*\/(\d+)/,1].to_i.ordinal]
|
125
115
|
when /,/
|
126
116
|
" of %s" % mon.split(/,/)\
|
127
117
|
.map {|x| Date::MONTHNAMES[x.to_i] }.join(' and ')
|
128
118
|
when /\-/
|
129
|
-
" of %s" % mon.split('-',2).map {|x| Date::MONTHNAMES[x.to_i] }
|
119
|
+
" of %s" % mon.split('-',2).map {|x| Date::MONTHNAMES[x.to_i] }\
|
120
|
+
.join(' through ')
|
130
121
|
else
|
131
122
|
s = @count < 8 ? 'of ' : ''
|
132
123
|
" %s%s" % [s, Date::MONTHNAMES[mon.to_i]]
|
@@ -139,9 +130,8 @@ class CronSpeak
|
|
139
130
|
|
140
131
|
def dow(raw_dow='*')
|
141
132
|
|
142
|
-
|
143
|
-
when /^\*$/
|
144
|
-
''
|
133
|
+
case raw_dow
|
134
|
+
when /^\*$/ then ''
|
145
135
|
when /,/
|
146
136
|
@count += 8
|
147
137
|
raw_dow.split(/,/).map {|x| Date::DAYNAMES[x.to_i] + 's' }.join(' and ')
|
@@ -161,4 +151,4 @@ end
|
|
161
151
|
if __FILE__ == $0 then
|
162
152
|
cs = CronSpeak.new(ARGV[0])
|
163
153
|
cs.to_s
|
164
|
-
end
|
154
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cronspeak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
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
|
+
8ixkARkWAmV1MB4XDTE2MTIyNTExMDUyOFoXDTE3MTIyNTExMDUyOFowSDESMBAG
|
16
16
|
A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
|
17
17
|
EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
ggEBALJHpi/M38k6ruxjjNS5hyeMfHdue0pRe+9VXCq0I2Js625gOXrZxn/TUP0K
|
19
|
+
MswRd+O7BwY3Xf9SM0Co5MMwdVSYUbKDlcWZOxFmdSBK51tuGZaO/g+SYmJAYHnq
|
20
|
+
erjp0Cm4C+5h5kcclRlaUki1OmVE+8YA6c+VLUNN4neu03RgjqTq9OM45jXAkKV9
|
21
|
+
Qzh0REO77g5KpJYLSBHbCvqU3gqDJTURajC0lGI1Hvp4KvMdHdAqRMwilucpwkde
|
22
|
+
l7jgKTSidoDrlZtsgH+pVXXSMsCrqduZYLzAOfJkmMpY8QbQonhPjhG4dRoSXePB
|
23
|
+
1nOPPa+Rb3GJno5ZR3sLlKwQXwECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
24
|
+
DwQEAwIEsDAdBgNVHQ4EFgQUiCnOrbmIEXzqcgIAxn4fhUhVCnAwJgYDVR0RBB8w
|
25
25
|
HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
+
|
31
|
-
/
|
32
|
-
|
26
|
+
c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAGSacZFdF
|
27
|
+
lR4osZTsPRJxn0RS6CCPaKh3x+KRQYByv7p1HeaJkkSUCgLX7uQRMzOTUuwgc2Mm
|
28
|
+
GhsestRbEx+ca4tItWMW9FdI53LiAsBEq6ZXQP1Okmx+fnk+0X/j5V48Mi3R9HCI
|
29
|
+
sNYDsJGiIRPADTdc147zus01akntBjX49+eM0OKtqWNgjjGT9tkTpmcq7jmnajRs
|
30
|
+
13pQ3IadRY6jGO7rbP4lUYGiqyM+u9OhL7GNy6QPBl7cdShaVBiqU0qcWPGtbpfS
|
31
|
+
BTR26NhGRU/X5PkLwUPyCglk9XZwTESJOHI81rH9qg6mT9hvVnSsmfzu+QxaZDDv
|
32
|
+
RwIL6sS1+XxVzw==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
34
|
+
date: 2016-12-25 00:00:00.000000000 Z
|
35
35
|
dependencies: []
|
36
36
|
description:
|
37
37
|
email: james@r0bertson.co.uk
|
@@ -60,9 +60,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
60
60
|
version: '0'
|
61
61
|
requirements: []
|
62
62
|
rubyforge_project:
|
63
|
-
rubygems_version: 2.
|
63
|
+
rubygems_version: 2.5.1
|
64
64
|
signing_key:
|
65
65
|
specification_version: 4
|
66
66
|
summary: Translates a cron expression into natural language
|
67
67
|
test_files: []
|
68
|
-
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|