week 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +35 -8
  2. data/lib/week.rb +7 -0
  3. data/test/test_week.rb +32 -0
  4. metadata +23 -43
data/README.md CHANGED
@@ -1,16 +1,43 @@
1
- === Description:
2
- A simple gem to work with weeks as arrays of days numbers. It works with commercial dates (according to http://en.wikipedia.org/wiki/ISO_week_date).
1
+ [![Build Status](https://secure.travis-ci.org/grsmv/week.png?branch=master)](http://travis-ci.org/grsmv/week)
3
2
 
4
- === Usage:
3
+ ## Description:
4
+ A simple gem to work with weeks as arrays of date objects. It works with commercial dates (according to http://en.wikipedia.org/wiki/ISO_week_date).
5
+
6
+ ## Usage:
5
7
 
6
8
  week(2011, 52).map { |day| p day }
9
+
10
+ # =>
11
+ # Sun Dec 25 00:00:00 +0200 2011
12
+ # (...)
13
+ # Sat Dec 31 00:00:00 +0200 2011
14
+
15
+
16
+ # Or you can use it without any parameters:
17
+ # (if todays date is 10, August 2011)
18
+
19
+ week.map { |day| p day }
20
+
21
+ # =>
22
+ # Sun Aug 07 00:00:00 +0300 2011
23
+ # (...)
24
+ # Sat Aug 13 00:00:00 +0300 2011
25
+
26
+
27
+ # Use gem with 1 as third parameter if you want
28
+ # to have Monday as a first day of the week:
29
+
30
+ week(2011, 8, 1).map { |day| p day }
31
+
32
+ # Also there is monkey patch for standart library Date class,
33
+ # with wich you can simply do this:
34
+
35
+ Date.new(2011, 12, 25).week
36
+
7
37
  # =>
8
38
  # Sun Dec 25 00:00:00 +0200 2011
9
- # Mon Dec 26 00:00:00 +0200 2011
10
- # Tue Dec 27 00:00:00 +0200 2011
11
- # Wed Dec 28 00:00:00 +0200 2011
12
- # Thu Dec 29 00:00:00 +0200 2011
13
- # Fri Dec 30 00:00:00 +0200 2011
39
+ # (...)
14
40
  # Sat Dec 31 00:00:00 +0200 2011
15
41
 
42
+
16
43
  Copyright (c) 2011 Sergey Gerasimov
@@ -62,3 +62,10 @@
62
62
  def week(year = @today.year, week = @today.cweek, fday = 0)
63
63
  Week.new(year, week, fday).days
64
64
  end
65
+
66
+ # Monkey patch for Ruby standart library Date time
67
+ class Date
68
+ def week
69
+ Week.new(self.year, (self.cweek + 1), fday = 0).days
70
+ end
71
+ end
@@ -0,0 +1,32 @@
1
+ require "test/unit"
2
+ require "week"
3
+
4
+ class WeekTest < Test::Unit::TestCase
5
+ def setup
6
+ @standard_output = []
7
+ (25..31).each do |day|
8
+ @standard_output << Time.mktime(2011, 12, day)
9
+ end
10
+ end
11
+
12
+ def test_001_returning_array_count
13
+ assert_equal 7, week(2011, 52).size
14
+ end
15
+
16
+ def test_002_returning_array_contents
17
+ assert_equal @standard_output, week(2011, 52)
18
+ end
19
+
20
+ def test_003_monday_as_first_day_of_the_week
21
+ assert_equal 1, week(2011, 8, 1)[0].wday
22
+ end
23
+
24
+ def test_004_date_monkey_patching
25
+ assert_equal @standard_output, Date.new(2011, 12, 25).week
26
+ end
27
+
28
+ def test_005_date_monkey_patching_wide_form
29
+ day = Date.new(2011, 12, 25)
30
+ assert_equal @standard_output, day.week
31
+ end
32
+ end
metadata CHANGED
@@ -1,71 +1,51 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: week
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Sergey Gerasimov
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-08-10 00:00:00 +03:00
19
- default_executable:
12
+ date: 2012-03-23 00:00:00.000000000Z
20
13
  dependencies: []
21
-
22
- description: Simple gem to work with weeks as arrays of day numbers.
23
- email:
14
+ description: Simple gem to work with weeks as arrays of date objects. Also include
15
+ monkey patch for Date class. Cheers!
16
+ email:
24
17
  - mail@grsmv.com
25
18
  executables: []
26
-
27
19
  extensions: []
28
-
29
20
  extra_rdoc_files: []
30
-
31
- files:
21
+ files:
32
22
  - README.md
33
23
  - CHANGELOG.md
34
24
  - LICENSE
35
25
  - lib/week.rb
36
- has_rdoc: true
26
+ - test/test_week.rb
37
27
  homepage: http://github.com/grsmv/week
38
28
  licenses: []
39
-
40
29
  post_install_message:
41
30
  rdoc_options: []
42
-
43
- require_paths:
31
+ require_paths:
44
32
  - lib
45
- required_ruby_version: !ruby/object:Gem::Requirement
33
+ required_ruby_version: !ruby/object:Gem::Requirement
46
34
  none: false
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- hash: 3
51
- segments:
52
- - 0
53
- version: "0"
54
- required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
40
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
63
45
  requirements: []
64
-
65
46
  rubyforge_project: week
66
- rubygems_version: 1.4.2
47
+ rubygems_version: 1.8.10
67
48
  signing_key:
68
49
  specification_version: 3
69
- summary: Simple gem to work with weeks as arrays of day numbers.
50
+ summary: Simple gem to work with weeks as arrays of date objects.
70
51
  test_files: []
71
-