DateUtils 0.3 → 0.3.1
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.
- data/lib/date_utils.rb +28 -51
- metadata +3 -3
data/lib/date_utils.rb
CHANGED
@@ -18,7 +18,6 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require 'date'
|
21
|
-
require 'date_utils'
|
22
21
|
|
23
22
|
|
24
23
|
# DateUils
|
@@ -28,40 +27,7 @@ require 'date_utils'
|
|
28
27
|
# * DateUtils::Year
|
29
28
|
# * DateUtils::Month
|
30
29
|
# * DateUtils::Week
|
31
|
-
# * DateUtils::Day
|
32
|
-
# for complete rdoc visit:
|
33
|
-
# http://dateutils.rubyforge.org
|
34
30
|
#
|
35
|
-
# _usage_:
|
36
|
-
#
|
37
|
-
# year = DateUtils::Year.new(Date.parse('1977-10-18'))
|
38
|
-
# pp year
|
39
|
-
#<DateUtils::Year:0xb7c4e19c
|
40
|
-
# @date=#<Date: 4886869/2,0,2299161>,
|
41
|
-
# @first_day=#<Date: 4886289/2,0,2299161>,
|
42
|
-
# @last_day=#<Date: 4887017/2,0,2299161>,
|
43
|
-
# @year=1977>
|
44
|
-
#
|
45
|
-
# year.first_day.to_s
|
46
|
-
# => "1977-01-01"
|
47
|
-
# pp year.weeks.first
|
48
|
-
#<DateUtils::Week:0xb7b37a60
|
49
|
-
# @date=#<Date: 4886289/2,0,2299161>,
|
50
|
-
# @first_day=#<Date: 4886279/2,0,2299161>,
|
51
|
-
# @last_day=#<Date: 4886291/2,0,2299161>,
|
52
|
-
# @month=
|
53
|
-
# #<DateUtils::Month:0xb7b37704
|
54
|
-
# @date=#<Date: 4886289/2,0,2299161>,
|
55
|
-
# @first_day=#<Date: 4886289/2,0,2299161>,
|
56
|
-
# @last_day=#<Date: 4886349/2,0,2299161>,
|
57
|
-
# @month=1,
|
58
|
-
# @num_days=31>,
|
59
|
-
# @num_week=53>
|
60
|
-
#
|
61
|
-
#
|
62
|
-
# year.distance_to_now_in_words
|
63
|
-
# => "29 years,10 months,5 days ago"
|
64
|
-
#
|
65
31
|
module DateUtils
|
66
32
|
|
67
33
|
# common to Year/Month/Week
|
@@ -255,6 +221,8 @@ module DateUtils
|
|
255
221
|
return Week.new(@last_day + 1)
|
256
222
|
end
|
257
223
|
|
224
|
+
alias succ next
|
225
|
+
|
258
226
|
# returns new Week -instance one week before self
|
259
227
|
#
|
260
228
|
def previous
|
@@ -262,11 +230,12 @@ module DateUtils
|
|
262
230
|
end
|
263
231
|
|
264
232
|
# returns collection of days as Date -instances
|
265
|
-
#
|
266
|
-
|
233
|
+
# or yields Day if block given
|
234
|
+
#
|
235
|
+
def days(&block)
|
267
236
|
arr = []
|
268
237
|
@first_day.upto(@last_day) { |date| arr << date }
|
269
|
-
arr
|
238
|
+
block_given? ? arr.each { |a| yield a } : arr
|
270
239
|
end
|
271
240
|
|
272
241
|
private
|
@@ -286,12 +255,14 @@ module DateUtils
|
|
286
255
|
@date = date
|
287
256
|
end
|
288
257
|
|
258
|
+
|
289
259
|
end
|
290
260
|
|
291
|
-
#
|
292
|
-
#
|
261
|
+
# future use of Day planned instead of regular 'Date'-instance
|
262
|
+
# when calling e.g. Month#days
|
293
263
|
#
|
294
264
|
class Day
|
265
|
+
# the regular 'Date'-instance of this 'Day'
|
295
266
|
attr_reader :date
|
296
267
|
|
297
268
|
def initialize(date=nil)
|
@@ -304,7 +275,7 @@ module DateUtils
|
|
304
275
|
#
|
305
276
|
class Month
|
306
277
|
include Common
|
307
|
-
|
278
|
+
|
308
279
|
# the initial / regular Date instance
|
309
280
|
attr_reader :date
|
310
281
|
|
@@ -357,7 +328,9 @@ module DateUtils
|
|
357
328
|
def next
|
358
329
|
return Month.new(@last_day + 1)
|
359
330
|
end
|
360
|
-
|
331
|
+
|
332
|
+
alias succ next
|
333
|
+
|
361
334
|
# returns a new Month -instance one Month prior to self
|
362
335
|
#
|
363
336
|
def previous
|
@@ -365,11 +338,11 @@ module DateUtils
|
|
365
338
|
end
|
366
339
|
|
367
340
|
# returns collection of days as Date -instances of self
|
368
|
-
#
|
369
|
-
def days
|
341
|
+
# or yields Day if block given
|
342
|
+
def days(&block)
|
370
343
|
arr = []
|
371
344
|
@first_day.upto(@last_day) { |date| arr << date }
|
372
|
-
arr
|
345
|
+
block_given? ? arr.each { |a| yield a } : arr
|
373
346
|
end
|
374
347
|
|
375
348
|
private
|
@@ -393,7 +366,7 @@ module DateUtils
|
|
393
366
|
#
|
394
367
|
class Year
|
395
368
|
include Common
|
396
|
-
|
369
|
+
|
397
370
|
# the initial Date of the Year -instance
|
398
371
|
attr_reader :date
|
399
372
|
|
@@ -431,19 +404,21 @@ module DateUtils
|
|
431
404
|
end
|
432
405
|
|
433
406
|
# returns collection of Month -instances of self
|
434
|
-
#
|
435
|
-
|
407
|
+
# or yields Month if block given
|
408
|
+
#
|
409
|
+
def months(&block)
|
436
410
|
arr = []
|
437
411
|
for i in 1..12
|
438
412
|
arr.push( Month.new(Date.civil(@year,i) ) )
|
439
413
|
end
|
440
|
-
arr
|
414
|
+
block_given? ? arr.each { |a| yield a } : arr
|
441
415
|
end
|
442
416
|
|
443
417
|
# returns collection of Week -instances of self
|
444
418
|
# neccessarily overlaps year boundarys
|
445
|
-
#
|
446
|
-
|
419
|
+
# yields Week if block given
|
420
|
+
#
|
421
|
+
def weeks(&block)
|
447
422
|
d = Date.civil(@year)
|
448
423
|
arr = []
|
449
424
|
week = Week.new(d)
|
@@ -452,7 +427,7 @@ module DateUtils
|
|
452
427
|
week = week.next
|
453
428
|
arr.push(week)
|
454
429
|
end
|
455
|
-
arr
|
430
|
+
block_given? ? arr.each { |a| yield a } : arr
|
456
431
|
end
|
457
432
|
|
458
433
|
# returns Week 'num' of self
|
@@ -477,6 +452,8 @@ module DateUtils
|
|
477
452
|
end
|
478
453
|
end
|
479
454
|
|
455
|
+
alias succ next
|
456
|
+
|
480
457
|
# returns new Year instance one year previous
|
481
458
|
#
|
482
459
|
def previous
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.4
|
3
3
|
specification_version: 1
|
4
4
|
name: DateUtils
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version:
|
7
|
-
date: 2007-08-
|
6
|
+
version: 0.3.1
|
7
|
+
date: 2007-08-25 00:00:00 +02:00
|
8
8
|
summary: Some handy utils to deal with Date
|
9
9
|
require_paths:
|
10
10
|
- lib
|