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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b48ca04c5db37a5257d2ea8cc6f1ba312a87a4f6
4
- data.tar.gz: 87b13a3016a874fb2fde426160aab10b1f1c7e33
3
+ metadata.gz: df8bd5c0ec37ff03435123527aed4d6b91617c6d
4
+ data.tar.gz: add6f5b6d785e22ccbcaf5d00c1d2b4f1cfbf470
5
5
  SHA512:
6
- metadata.gz: f6d79fb18d64a2a53c8128cc8cf904b808548d0be2c196c0a97a3b9d85214b37132008c748221c6f3483eae2924c3735d6a318808b440e9cfab78c6a1dedbf12
7
- data.tar.gz: b8388d7c30bd5d5d1578efcebbc7c24a530ef0b80d44ae09e521bb76ed1c619f99303d9bd8e69d7e13653bf7735ff3b8360ee50708ce2aaf1f020b2ba233f6c4
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 Fixnum do
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
- r = case m
43
+ case m
44
+ when /^\*$/ then 'every minute of '
46
45
  when /^\*\//
47
- m = m[/^\*\/(\d+)/,1]
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] }.join(' through ')
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
- @dow = case raw_dow
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.1.6
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
- 8ixkARkWAmV1MB4XDTE0MDcyODE4NTUxMVoXDTE1MDcyODE4NTUxMVowSDESMBAG
15
+ 8ixkARkWAmV1MB4XDTE2MTIyNTExMDUyOFoXDTE3MTIyNTExMDUyOFowSDESMBAG
16
16
  A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
17
  EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAKorHaDyE7nD6g5weJEzNGGMylBxB8ZhQonaw7VosHaTNr9/T8DTQIL7JC2g
19
- jiiYGD2x6xtsmcTG98IsiKO+hOcNF/6KNCKv9azDUkKHHJSng59Zd8ISuOg3fLjW
20
- ZXKk9amtpnpXgLam4EirZVZxznBWrIwoG6tyZ2tpW7xyv5Cg4GZLi+UcrcTTOJdq
21
- agm85xEc3oBySaZ1F+uZp8ZtLlr9GNiEmBQVt+nVTaneimsyUwvm2c3eM/3uZsGS
22
- UIFEK1GqyeMVaZD0bjpSjq3Nh5djRPYs2MTjGTMc9wntbxIaKTbZU95c0mgwSndL
23
- xGM/Hk9+/bhMK0J4WIBx/ZKdtjcCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQU66tf+rrpbCVVkwTnF2FmrLrVdlYwJgYDVR0RBB8w
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
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAhiJ2lyRp
27
- vcYZ4wg7DHbArQfL0te4sVoVWFN2lSg4gel0ZzRDh0qrQWRPIIwLnrPmpb/hfguF
28
- QWpyQzV92VYhHKni+Mx9uIAuo4PJnTn+pYJx2zQNUNlbHrKRm1Iwj7BSLq8XA3mG
29
- SvHwmahqNXG3+14ZLba+/BqFbGuXarK6/Axl0S0wwueU1OcgnAe4UE2jf2mwBXBB
30
- +DIJ5eEj8jLgRhNjkuG8vxHIaJ+NNr6maOFFQ4iu+qKSgioVl5L62UI/6f/4DTiN
31
- /qxj4jzSVHouRW0P3Zn5Ksu2Nr182B5rd4vXuOR2ZgSLjWu8iQUgGG6Mz6U+bTUO
32
- Qz3ThjR4bQCxiQ==
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: 2014-07-30 00:00:00.000000000 Z
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.2.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