DateUtils 0.3.1.1 → 0.4

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.
Files changed (2) hide show
  1. data/lib/date_utils.rb +13 -5
  2. metadata +41 -32
@@ -3,7 +3,7 @@
3
3
  #--
4
4
  # Copyright (c) 2007 Rene Paulokat
5
5
  # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General PublicF License as published by
6
+ # it under the terms of the GNU General Public License as published by
7
7
  # the Free Software Foundation; either version 2 of the License, or
8
8
  # (at your option) any later version.
9
9
  #
@@ -358,8 +358,6 @@ module DateUtils
358
358
  @num_days = 30 if [4,6,9,11].include?(@month)
359
359
  ( date.leap? ? (@num_days = 29) : (@num_days = 28) ) if @month == 2
360
360
  @last_day = @first_day + ( @num_days - 1 )
361
- # XXX instance-variable 'year' added.
362
- @year = @date.year
363
361
  end
364
362
 
365
363
  end
@@ -381,6 +379,9 @@ module DateUtils
381
379
  # last day of this year
382
380
  attr_reader :last_day
383
381
 
382
+ # number of weeks in year
383
+ attr_reader :num_weeks
384
+
384
385
  # create a new Year -instance with given Date
385
386
  #
386
387
  def initialize(date=nil)
@@ -392,6 +393,9 @@ module DateUtils
392
393
  @date = date
393
394
  @first_day = Date::parse("#{@year}-01-01")
394
395
  @last_day = Date::parse("#{@year}-12-31")
396
+ # there are 53 weeks, if year ends on thursdays:
397
+ @num_weeks = @last_day.wday == 4 ? 53 : 52
398
+
395
399
  end
396
400
 
397
401
  # create a Year-instance
@@ -425,7 +429,7 @@ module DateUtils
425
429
  arr = []
426
430
  week = Week.new(d)
427
431
  arr.push(week)
428
- for i in 1..53
432
+ for i in 1..@num_weeks
429
433
  week = week.next
430
434
  arr.push(week)
431
435
  end
@@ -435,7 +439,11 @@ module DateUtils
435
439
  # returns Week 'num' of self
436
440
  #
437
441
  def get_week(num)
438
- ! num.kind_of?(Fixnum) || num > 53 ? ArgumentError.new("invalid week-number 'num'"): self.weeks[num -1]
442
+ if ! num.kind_of?(Fixnum) || num > @num_weeks
443
+ ArgumentError.new("invalid week-number 'num'")
444
+ else
445
+ ( @num_weeks > 52 ) ? self.weeks[num-1] : self.weeks[num]
446
+ end
439
447
  end
440
448
 
441
449
  # returns Month 'num' of self
metadata CHANGED
@@ -1,47 +1,56 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: DateUtils
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.3.1.1
7
- date: 2007-11-04 00:00:00 +01:00
8
- summary: Some handy utils to deal with Date
9
- require_paths:
10
- - lib
11
- email: rene@so36.net
12
- homepage: http://rcms.oopen.de
13
- rubyforge_project:
14
- description:
15
- autorequire: date_utils
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: "0.4"
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Rene Paulokat
31
- files:
32
- - lib/date_utils.rb
33
- - README
34
- test_files: []
8
+ autorequire: date_utils
9
+ bindir: bin
10
+ cert_chain: []
35
11
 
36
- rdoc_options: []
12
+ date: 2010-03-16 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies: []
37
15
 
38
- extra_rdoc_files:
39
- - README
16
+ description:
17
+ email: rene@so36.net
40
18
  executables: []
41
19
 
42
20
  extensions: []
43
21
 
22
+ extra_rdoc_files:
23
+ - README
24
+ files:
25
+ - lib/date_utils.rb
26
+ - README
27
+ has_rdoc: true
28
+ homepage: http://labs.so36.net
29
+ licenses: []
30
+
31
+ post_install_message:
32
+ rdoc_options: []
33
+
34
+ require_paths:
35
+ - lib
36
+ required_ruby_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: "0"
41
+ version:
42
+ required_rubygems_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ version:
44
48
  requirements: []
45
49
 
46
- dependencies: []
50
+ rubyforge_project:
51
+ rubygems_version: 1.3.5
52
+ signing_key:
53
+ specification_version: 3
54
+ summary: Some handy utils to deal with Date
55
+ test_files: []
47
56