cronspeak 0.1.6 → 0.2.0
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 +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
|