chronic_cron 0.2.19 → 0.2.20

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: 47b0ea744fa7e77efc5ec721eb6fca1bcad81660
4
- data.tar.gz: b6bb72784ba74696827041ad09ba5ef64c70f288
3
+ metadata.gz: 853b5f2a3c7ee683d680e2304124c46a6b9aa178
4
+ data.tar.gz: ce201e7682eba76ec3a29ccbe8b11a1d2ce6168b
5
5
  SHA512:
6
- metadata.gz: 5e3d02e52753d8b49fd13f846e552abdc58e05e3e954a03dde7c234cd08cb85d304bc5f3cf861471938c6934aedbb80b662ecfb98345abff1e587995f47d3512
7
- data.tar.gz: 8b05d09f7c3b335f672aa62f8a4145b4de43625c2f37a8515282f904ff510d91a469ca7489be68a192c2a4a34f391e67bdc0d8ed7604da1bea7beb7fb1778ed1
6
+ metadata.gz: 82310745fcde76212ada8ac07920994eaca560974e800a7138f115651cbf13e62f1f3890df7105fbb13f5c5555c3b43b336631fce5075ba9be5ac18fafc25dfb
7
+ data.tar.gz: 17dfb8016753beaa8b7d96b54191ad6f6126c17ad14be4ddbba36ff7dd38db99e50d5d1f910fc86038b2192c8be506e27de2680865bebf1b6d324a2cee9aad7d
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -21,12 +21,17 @@ class ChronicCron
21
21
  @params = {input: s}
22
22
  expressions(@params)
23
23
 
24
- expression = find_expression(s.sub(/^(?:on|at)\s+/,''))
24
+ expression = find_expression(s.sub(/^(?:on|at|from|starting)\s+/,''))
25
25
  @cf = CronFormat.new(expression, now)
26
26
  @to_expression = @cf.to_expression
27
27
 
28
28
  end
29
29
 
30
+ def inspect()
31
+ "#<ChronicCron:%s @to_expression=\"%s\", @to_time=\"%s\">" %
32
+ [self.object_id, @to_expression, @cf.to_time]
33
+ end
34
+
30
35
  def next() @cf.next end
31
36
  def to_time() @cf.to_time end
32
37
 
@@ -35,26 +40,29 @@ class ChronicCron
35
40
  def expressions(params)
36
41
 
37
42
  r = '[0-9\*,\?\/\-]+'
43
+ daily = '(?:every day|daily)'
44
+
38
45
  # e.g. 00 5 15 * *
39
46
  get /(#{r}\s+#{r}\s+#{r}\s#{r}\s#{r})(\s#{r})?/ do
40
47
  "%s%s" % params[:captures]
41
48
  end
42
49
 
43
50
  # e.g. 9:00-18:00 every day
44
- get /(\d{1,2}):(\d{1,2})-(\d{1,2}):\d{1,2}\s+every day/ do
51
+ get /(\d{1,2}):(\d{1,2})-(\d{1,2}):\d{1,2}\s+#{daily}/ do
45
52
  "%s %s-%s * * *" % params[:captures].values_at(1,0,2)
46
53
  end
47
54
 
48
55
  # e.g. every 30mins from 8:00am until 8:00pm mon-fri
49
56
  get /every\s+(\d+)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
50
57
  |interval_mins, r_hrs1, mins1, meridiem1, r_hrs2, meridiem2, wdays|
58
+ puts 'cute'
51
59
  hrs1 = meridiem1 == 'pm' ? r_hrs1.to_i + 12 : r_hrs1
52
60
  hrs2 = meridiem2 == 'pm' ? r_hrs2.to_i + 12 : r_hrs2
53
61
  "%s/%s %s-%s * * %s" % [mins1.to_i, interval_mins, hrs1, hrs2, wdays]
54
62
  end
55
63
 
56
64
  # e.g. every 30mins from 8:00am until 8:00pm every day
57
- get /every\s+(\d+)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+every day/ do
65
+ get /every\s+(\d+)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+#{daily}/ do
58
66
  |interval_mins, r_hrs1, mins1, meridiem1, r_hrs2, meridiem2|
59
67
  hrs1 = meridiem1 == 'pm' ? r_hrs1.to_i + 12 : r_hrs1
60
68
  hrs2 = meridiem2 == 'pm' ? r_hrs2.to_i + 12 : r_hrs2
@@ -62,7 +70,7 @@ class ChronicCron
62
70
  end
63
71
 
64
72
  # e.g. 8:00am until 8:00pm every day
65
- get /(\d{1,2}):(\d{1,2})([ap]m)(?:\s+until\s+|\s*-\s*)(\d{1,2}):\d{1,2}([ap]m)\s+every day/ do
73
+ get /(\d{1,2}):(\d{1,2})([ap]m)(?:\s+until\s+|\s*-\s*)(\d{1,2}):\d{1,2}([ap]m)\s+#{daily}/ do
66
74
  |r_hrs1, mins1, meridiem1, r_hrs2, meridiem2|
67
75
  hrs1 = meridiem1 == 'pm' ? r_hrs1.to_i + 12 : r_hrs1
68
76
  hrs2 = meridiem2 == 'pm' ? r_hrs2.to_i + 12 : r_hrs2
@@ -70,8 +78,9 @@ class ChronicCron
70
78
  end
71
79
 
72
80
  # e.g. 10:15am every day
73
- get /(\d{1,2}):(\d{1,2})([ap]m)?\s+every day/ do |raw_hrs, mins, meridiem|
81
+ get /(\d{1,2}):(\d{1,2})([ap]m)?\s+#{daily}/ do |raw_hrs, mins, meridiem|
74
82
  hrs = meridiem == 'pm' ? raw_hrs.to_i + 12 : raw_hrs
83
+ puts 'book'
75
84
  "%s %s * * *" % [mins.to_i, hrs]
76
85
  end
77
86
 
@@ -83,7 +92,7 @@ class ChronicCron
83
92
  end
84
93
 
85
94
  # e.g. at 11:00 and 16:00 on every day
86
- get /(\d{1,2}):(\d{1,2}) and (\d{1,2}):\d{1,2} (?:on )?every day/ do
95
+ get /(\d{1,2}):(\d{1,2}) and (\d{1,2}):\d{1,2} (?:on )?#{daily}/ do
87
96
  "%s %s,%s * * *" % params[:captures].values_at(1,0,2)
88
97
  end
89
98
 
@@ -96,15 +105,18 @@ class ChronicCron
96
105
  get('yearly') {'0 0 1 1 *'}
97
106
  get('annually') {'0 0 1 1 *'}
98
107
 
108
+ weekday = '((?:mon|tue|wed|thu|fri|sat|sun)\w*)'
109
+
99
110
  # e.g. at 10:30pm on every Monday
100
- get /(\d{1,2}):(\d{1,2})([ap]m)?\s+(?:on )?every (\w+)/ do
111
+ get /(\d{1,2}):(\d{1,2})([ap]m)?\s+(?:on )?every #{weekday}/i do
101
112
  |raw_hrs, mins, meridiem, wday|
102
113
  hrs = meridiem == 'pm' ? raw_hrs.to_i + 12 : raw_hrs
114
+ puts 'hmmm'
103
115
  "%s %s * * %s" % [mins, hrs , wday]
104
116
  end
105
117
 
106
118
  # e.g. at 10pm on every Monday
107
- get /(\d{1,2})([ap]m)?\s+(?:on )?every ((?:mon|tue|wed|thu|fri|sat|sun)\w*)/i do
119
+ get /(\d{1,2})([ap]m)?\s+(?:on )?every #{weekday}/i do
108
120
  |raw_hrs, meridiem, wday|
109
121
  hrs = meridiem == 'pm' ? raw_hrs.to_i + 12 : raw_hrs
110
122
  "0 %s * * %s" % [hrs , wday]
@@ -120,7 +132,7 @@ class ChronicCron
120
132
 
121
133
  # e.g. every 2 days
122
134
  get(/every (\d{1,2}) days?/){|days| "* * */%s * *" % [days]}
123
- get(/every day/){ "0 0 * * *"}
135
+ get(/#{daily}/){ "0 0 * * *"}
124
136
 
125
137
  get /any\s?time today/ do
126
138
  self.instance_eval %q(
@@ -134,20 +146,21 @@ class ChronicCron
134
146
  end
135
147
 
136
148
  # e.g. every tuesday at 4pm
137
- get /every\s+((?:mon|tue|wed|thu|fri|sat|sun)\w*)\s+at\s+(\d{1,2})([ap]m)/i do
149
+ get /every\s+#{weekday}\s+at\s+(\d{1,2})([ap]m)/i do
138
150
  |wday, raw_hrs, meridiem, |
139
151
  hrs = meridiem == 'pm' ? raw_hrs.to_i + 12 : raw_hrs
140
152
  "0 %s * * %s" % [hrs , wday]
141
153
  end
142
154
 
143
155
  # e.g. every tuesday at 4:40pm
144
- get /every\s+((?:mon|tue|wed|thu|fri|sat|sun)\w*)\s+at\s+(\d{1,2}):(\d{1,2})([ap]m)/i do
156
+ get /every\s+#{weekday}\s+at\s+(\d{1,2}):(\d{1,2})([ap]m)/i do
145
157
  |wday, raw_hrs, mins, meridiem, |
146
158
  hrs = meridiem == 'pm' ? raw_hrs.to_i + 12 : raw_hrs
159
+ puts 'coo'
147
160
  "%s %s * * %s" % [mins, hrs , wday]
148
161
  end
149
162
 
150
-
163
+ # e.g. starting 05-Aug@15:03 every 2 weeks
151
164
  get /(.*) every (\d) weeks/ do |raw_date, interval|
152
165
 
153
166
  t = Chronic.parse(raw_date)
@@ -155,6 +168,23 @@ class ChronicCron
155
168
  "%s %s %s %s %s/%s %s" % [mins, hrs, day, month, t.wday, interval, year]
156
169
  end
157
170
 
171
+ # e.g. from 05-Aug@12:34 fortnightly
172
+ get /(.*)\s+(?:biweekly|fortnightly)/ do |raw_date|
173
+
174
+ t = Chronic.parse(raw_date)
175
+ mins, hrs, day, month, year = t.to_a.values_at(1,2,3,4,5)
176
+ "%s %s %s %s %s/2 %s" % [mins, hrs, day, month, t.wday, year]
177
+ end
178
+
179
+ # e.g. from 06-Aug@1pm every week
180
+ get /(.*)\s+(?:weekly|every week)/ do |raw_date|
181
+
182
+ t = Chronic.parse(raw_date)
183
+ mins, hrs, day, month, year = t.to_a.values_at(1,2,3,4,5)
184
+ "%s %s %s %s %s %s" % [mins, hrs, day, month, t.wday, year]
185
+ end
186
+
187
+ # e.g. 04-Aug@12:34
158
188
  get '*' do
159
189
 
160
190
  t = Chronic.parse(params[:input])
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.2.19
4
+ version: 0.2.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -29,7 +29,7 @@ cert_chain:
29
29
  aYYwh4InyS/QZr4LG0nh0TuYVP5vwm1cCSlLlo4dlv7bl7Q4y815j70z8O4oUrT8
30
30
  5oSIzmlVDEDmwAibYqdf+aHqmum1mkYW
31
31
  -----END CERTIFICATE-----
32
- date: 2013-08-05 00:00:00.000000000 Z
32
+ date: 2013-08-06 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: app-routes
metadata.gz.sig CHANGED
Binary file