cronspeak 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8168d5636c84fbe53bd754a9a0da21316e32bd6e
4
- data.tar.gz: 4d26cf71856166a857a5f0dd56488b5214f04868
3
+ metadata.gz: 2b4b7a0ba7777f11fc5a11179f51e27dc7a8061f
4
+ data.tar.gz: 66bd312c008506aae67a5d8292790351d5fe5037
5
5
  SHA512:
6
- metadata.gz: 04d332af1cef61eb10a734a2d59227e93d941fa8100424e57749ec8ca43ec461c6509565986c258af90dab8d32bb8f6ad609522482561955328633c7fc5986c9
7
- data.tar.gz: b9cc50148546e2c125d2d564a19aa7920428cbbdd870c01a7b04a14b960718577367876973e5a37adc90b9c3579210abce2ee46d29e3d5fa1b3c5262ba9e3cc1
6
+ metadata.gz: 5b419fde882bb07a5bf215c1071a876f4a22cab941666b428b828d80ae65b79cfd1b0c63e8a889b959c184529781d32e9fbb4d777b0fe9d07e9c18d119b7f1a7
7
+ data.tar.gz: 8ff63549378d549e7b4ade1c669acf1a88f9a171a3c0e4b734091de66ef5d215f13134aec490a2348b3bba2cb149725b5d79d5a7b398a97db41f08e53a46efcd
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1 @@
1
- Z���ъU�4���2��zԛ����`:\��4ӰW|���pg����q]H��B�@�����[���X�����>v��5���1kPȮX�½;Pht�'���!oˆ�B���+�*��ّP��5VhT��SjeX��@p.׵zхs��I�;�[�����#dF듹��Jc
2
- u�T.{�U2ꐪ����b����F�l��I�8�w�����c�|f�m��z���7��G7hUa�p�~V�d
1
+ ��"��]�)/{ ��Ĭ�/�#dK0�TA��������"�nO`��ɨ2�Xy�N��-�&S�G�b��ieV�_��'G��4���Ծ�e*��b�qPH�2H7Nnj 5ҚK�v����%���fHl��}�϶yƓ�u��2���\���Y��NHN�?���*�N|�_����;�,*��> ���/�{��k�m�X�8�6���9���o�a$��Q(�=G1
data/lib/cronspeak.rb CHANGED
@@ -26,7 +26,13 @@ class CronSpeak
26
26
  @count = 0
27
27
  m, h, d, mon, raw_dow = s.scan(/([\d,\*-\/]+)\s*/).flatten(1)
28
28
  dow(raw_dow)
29
- @to_s = [mins(m), hrs(h), days(d), months(mon)].join
29
+
30
+ @to_s = if m+h =~ /^\d+$/ then
31
+ [Time.parse(h + ':' + m)\
32
+ .strftime("%l:%M%P ").lstrip, days(d), months(mon)].join
33
+ else
34
+ [mins(m), hrs(h), days(d), months(mon)].join
35
+ end
30
36
 
31
37
  end
32
38
 
@@ -35,12 +41,14 @@ class CronSpeak
35
41
  def mins(m='*')
36
42
 
37
43
  r = if m == '*' then
38
- 'every minute'
44
+ 'every minute of '
39
45
  elsif m[/^\*\//]
40
46
  m = m[/^\*\/(\d+)/,1]
41
- "every %s minute" % [m.to_i.ordinal]
47
+ "every %s minute of " % [m.to_i.ordinal]
48
+ elsif m =~ /,/
49
+ "%s minutes of " % m.split(/,/).map {|x| x.to_i.ordinal }.join(' and ')
42
50
  else
43
- "%s minute" % [m.to_i.ordinal]
51
+ "%s minute of " % [m.to_i.ordinal]
44
52
  end
45
53
 
46
54
  return r
@@ -49,12 +57,17 @@ class CronSpeak
49
57
  def hrs(h='*')
50
58
 
51
59
  r = if h == '*' then
52
- ' of every hour'
60
+ 'every hour'
53
61
  elsif h[/^\*\//]
54
62
  h = h[/^\*\/(\d+)/,1]
55
63
  " of every %s hour" % [h.to_i.ordinal]
64
+ elsif h =~ /,/
65
+ "%s" % h.split(/,/)\
66
+ .map {|x| Time.parse(x+':00').strftime("%l%P").lstrip }.join(' and ')
67
+ elsif h =~ /,/
68
+ "%s of " % h.split(/,/).map {|x| x.to_i.ordinal }.join(' and ')
56
69
  else
57
- " of %s%s" % [h, Time.parse(h+':00').strftime("%P")]
70
+ "%s" % [Time.parse(h+':00').strftime("%l%P").lstrip]
58
71
  end
59
72
 
60
73
  @count += 2
@@ -72,6 +85,9 @@ class CronSpeak
72
85
  d = d[/^\*\/(\d+)/,1]
73
86
  @count += 4
74
87
  " of every %s day" % [d.to_i.ordinal]
88
+ elsif d =~ /,/
89
+ @count += 8
90
+ "the %s of " % d.split(/,/).map {|x| x.to_i.ordinal }.join(' and ')
75
91
  else
76
92
  @count += 4
77
93
  " the %s" % [d.to_i.ordinal]
data.tar.gz.sig CHANGED
Binary file
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.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
metadata.gz.sig CHANGED
Binary file