@@ -21,8 +21,9 @@ Imagine you want:
21
21
You would write:
22
22
23
23
``` ruby
24
+ schedule = IceCube ::Schedule .new
24
25
schedule.add_recurrence_rule(
25
- Rule .yearly.day_of_month(13 ).day(:friday ).month_of_year(:october )
26
+ IceCube :: Rule .yearly.day_of_month(13 ).day(:friday ).month_of_year(:october )
26
27
)
27
28
```
28
29
@@ -42,11 +43,11 @@ With ice_cube, you can specify (in increasing order of precedence):
42
43
* Recurrence Times - To specifically include in a schedule
43
44
* Exception Times - To specifically exclude from a schedule
44
45
45
- Example: Specifying a recurrence with an exception time:
46
+ Example: Specifying a recurrence with an exception time
46
47
47
48
``` ruby
48
49
schedule = IceCube ::Schedule .new (now = Time .now) do |s |
49
- s.add_recurrence_rule(Rule .daily.count(3 ))
50
+ s.add_recurrence_rule(IceCube :: Rule .daily.count(3 ))
50
51
s.add_exception_time(now + 1 .day)
51
52
end
52
53
@@ -87,13 +88,13 @@ schedule.previous_occurrences(3, from_time)
87
88
88
89
# or give the schedule a duration and ask if occurring_at?
89
90
schedule = IceCube ::Schedule .new (now, :duration => 3600 )
90
- schedule.add_recurrence_rule Rule .daily
91
+ schedule.add_recurrence_rule IceCube :: Rule .daily
91
92
schedule.occurring_at?(now + 1800 ) # true
92
93
schedule.occurring_between?(t1, t2)
93
94
94
- # using end_time also sets the duration
95
+ # using end_time also sets the duration
95
96
schedule = IceCube ::Schedule .new (start = Time .now, :end_time => start + 3600 )
96
- schedule.add_recurrence_rule Rule .daily
97
+ schedule.add_recurrence_rule IceCube :: Rule .daily
97
98
schedule.occurring_at?(start + 3599 ) # true
98
99
schedule.occurring_at?(start + 3600 ) # false
99
100
@@ -170,36 +171,36 @@ There are many types of recurrence rules that can be added to a schedule:
170
171
171
172
``` ruby
172
173
# every day
173
- schedule.add_recurrence_rule Rule .daily
174
+ schedule.add_recurrence_rule IceCube :: Rule .daily
174
175
175
176
# every third day
176
- schedule.add_recurrence_rule Rule .daily(3 )
177
+ schedule.add_recurrence_rule IceCube :: Rule .daily(3 )
177
178
```
178
179
179
180
### Weekly
180
181
181
182
``` ruby
182
183
# every week
183
- schedule.add_recurrence_rule Rule .weekly
184
+ schedule.add_recurrence_rule IceCube :: Rule .weekly
184
185
185
186
# every other week on monday and tuesday
186
- schedule.add_recurrence_rule Rule .weekly(2 ).day(:monday , :tuesday )
187
+ schedule.add_recurrence_rule IceCube :: Rule .weekly(2 ).day(:monday , :tuesday )
187
188
188
189
# for programmatic convenience (same as above)
189
- schedule.add_recurrence_rule Rule .weekly(2 ).day(1 , 2 )
190
+ schedule.add_recurrence_rule IceCube :: Rule .weekly(2 ).day(1 , 2 )
190
191
191
192
# specifying a weekly interval with a different first weekday (defaults to Sunday)
192
- schedule.add_recurrence_rule Rule .weekly(1 , :monday )
193
+ schedule.add_recurrence_rule IceCube :: Rule .weekly(1 , :monday )
193
194
```
194
195
195
196
### Monthly (by day of month)
196
197
197
198
``` ruby
198
199
# every month on the first and last days of the month
199
- schedule.add_recurrence_rule Rule .monthly.day_of_month(1 , - 1 )
200
+ schedule.add_recurrence_rule IceCube :: Rule .monthly.day_of_month(1 , - 1 )
200
201
201
202
# every other month on the 15th of the month
202
- schedule.add_recurrence_rule Rule .monthly(2 ).day_of_month(15 )
203
+ schedule.add_recurrence_rule IceCube :: Rule .monthly(2 ).day_of_month(15 )
203
204
```
204
205
205
206
Monthly rules will skip months that are too short for the specified day of
@@ -209,69 +210,69 @@ month (e.g. no occurrences in February for `day_of_month(31)`).
209
210
210
211
``` ruby
211
212
# every month on the first and last tuesdays of the month
212
- schedule.add_recurrence_rule Rule .monthly.day_of_week(:tuesday => [1 , - 1 ])
213
+ schedule.add_recurrence_rule IceCube :: Rule .monthly.day_of_week(:tuesday => [1 , - 1 ])
213
214
214
215
# every other month on the first monday and last tuesday
215
- schedule.add_recurrence_rule Rule .monthly(2 ).day_of_week(
216
+ schedule.add_recurrence_rule IceCube :: Rule .monthly(2 ).day_of_week(
216
217
:monday => [1 ],
217
218
:tuesday => [- 1 ]
218
219
)
219
220
220
221
# for programmatic convenience (same as above)
221
- schedule.add_recurrence_rule Rule .monthly(2 ).day_of_week(1 => [1 ], 2 => [- 1 ])
222
+ schedule.add_recurrence_rule IceCube :: Rule .monthly(2 ).day_of_week(1 => [1 ], 2 => [- 1 ])
222
223
```
223
224
224
225
### Yearly (by day of year)
225
226
226
227
``` ruby
227
228
# every year on the 100th days from the beginning and end of the year
228
- schedule.add_recurrence_rule Rule .yearly.day_of_year(100 , - 100 )
229
+ schedule.add_recurrence_rule IceCube :: Rule .yearly.day_of_year(100 , - 100 )
229
230
230
231
# every fourth year on new year's eve
231
- schedule.add_recurrence_rule Rule .yearly(4 ).day_of_year(- 1 )
232
+ schedule.add_recurrence_rule IceCube :: Rule .yearly(4 ).day_of_year(- 1 )
232
233
```
233
234
234
235
### Yearly (by month of year)
235
236
236
237
``` ruby
237
238
# every year on the same day as start_time but in january and february
238
- schedule.add_recurrence_rule Rule .yearly.month_of_year(:january , :februrary )
239
+ schedule.add_recurrence_rule IceCube :: Rule .yearly.month_of_year(:january , :februrary )
239
240
240
241
# every third year in march
241
- schedule.add_recurrence_rule Rule .yearly(3 ).month_of_year(:march )
242
+ schedule.add_recurrence_rule IceCube :: Rule .yearly(3 ).month_of_year(:march )
242
243
243
244
# for programatic convenience (same as above)
244
- schedule.add_recurrence_rule Rule .yearly(3 ).month_of_year(3 )
245
+ schedule.add_recurrence_rule IceCube :: Rule .yearly(3 ).month_of_year(3 )
245
246
```
246
247
247
248
### Hourly (by hour of day)
248
249
249
250
``` ruby
250
251
# every hour on the same minute and second as start date
251
- schedule.add_recurrence_rule Rule .hourly
252
+ schedule.add_recurrence_rule IceCube :: Rule .hourly
252
253
253
254
# every other hour, on mondays
254
- schedule.add_recurrence_rule Rule .hourly(2 ).day(:monday )
255
+ schedule.add_recurrence_rule IceCube :: Rule .hourly(2 ).day(:monday )
255
256
```
256
257
257
258
### Minutely (every N minutes)
258
259
259
260
``` ruby
260
261
# every 10 minutes
261
- schedule.add_recurrence_rule Rule .minutely(10 )
262
+ schedule.add_recurrence_rule IceCube :: Rule .minutely(10 )
262
263
263
264
# every hour and a half, on the last tuesday of the month
264
- schedule.add_recurrence_rule Rule .minutely(90 ).day_of_week(:tuesday => [- 1 ])
265
+ schedule.add_recurrence_rule IceCube :: Rule .minutely(90 ).day_of_week(:tuesday => [- 1 ])
265
266
```
266
267
267
268
### Secondly (every N seconds)
268
269
269
270
``` ruby
270
271
# every second
271
- schedule.add_recurrence_rule Rule .secondly
272
+ schedule.add_recurrence_rule IceCube :: Rule .secondly
272
273
273
274
# every 15 seconds between 12:00 - 12:59
274
- schedule.add_recurrence_rule Rule .secondly(15 ).hour_of_day(12 )
275
+ schedule.add_recurrence_rule IceCube :: Rule .secondly(15 ).hour_of_day(12 )
275
276
```
276
277
277
278
---
0 commit comments