quarter_time 1.0.1 → 1.1.0

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/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source :rubygems
2
+
3
+ gem 'activesupport','>=2.3.5'
4
+ gem 'i18n'
5
+
6
+ group :development do
7
+ gem 'jeweler'
8
+ gem 'shoulda'
9
+ end
@@ -0,0 +1,29 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activesupport (3.0.12)
5
+ git (1.2.5)
6
+ i18n (0.6.0)
7
+ jeweler (1.8.3)
8
+ bundler (~> 1.0)
9
+ git (>= 1.2.5)
10
+ rake
11
+ rdoc
12
+ json (1.7.3)
13
+ rake (0.9.2.2)
14
+ rdoc (3.12)
15
+ json (~> 1.4)
16
+ shoulda (3.0.1)
17
+ shoulda-context (~> 1.0.0)
18
+ shoulda-matchers (~> 1.0.0)
19
+ shoulda-context (1.0.0)
20
+ shoulda-matchers (1.0.0)
21
+
22
+ PLATFORMS
23
+ ruby
24
+
25
+ DEPENDENCIES
26
+ activesupport (>= 2.3.5)
27
+ i18n
28
+ jeweler
29
+ shoulda
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.1.0
@@ -16,11 +16,13 @@ class Quarter
16
16
  end
17
17
 
18
18
  def start_date
19
- Date.parse("#{(@quarter * 3) - 2}/01/#{@year}")
19
+ return @_start_date if @_start_date
20
+ @_start_date = Date.civil(year,(quarter * 3) - 2)
20
21
  end
21
22
 
22
23
  def end_date
23
- start_date + 3.months - 1.day
24
+ return @_end_date if @_end_date
25
+ @_end_date = Date.civil(year,(quarter*3),-1)
24
26
  end
25
27
 
26
28
  def yq_hash
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "quarter_time"
8
- s.version = "1.0.1"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["evizitei"]
12
- s.date = "2012-02-21"
12
+ s.date = "2012-06-08"
13
13
  s.description = "A simple gem for dealing with quarter logic. I happen to have a project where half the models in the database recur every three months as part of a \"quarter\" of the year. Within the code, we constantly are asking \"what quarter is this for?\", or \"show me all the records for this quarter\". Well, now I need the same power on another application, so say hello to \"quarter_time\"."
14
14
  s.email = "ethan.vizitei@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -18,6 +18,8 @@ Gem::Specification.new do |s|
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
+ "Gemfile",
22
+ "Gemfile.lock",
21
23
  "LICENSE",
22
24
  "README.rdoc",
23
25
  "Rakefile",
@@ -37,18 +39,30 @@ Gem::Specification.new do |s|
37
39
  ]
38
40
  s.homepage = "http://github.com/evizitei/quarter_time"
39
41
  s.require_paths = ["lib"]
40
- s.rubygems_version = "1.8.15"
42
+ s.rubygems_version = "1.8.23"
41
43
  s.summary = "library for measuring time in quarters (three month periods) and interacting with models that are tied to a specific quarter."
42
44
 
43
45
  if s.respond_to? :specification_version then
44
46
  s.specification_version = 3
45
47
 
46
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.3.5"])
50
+ s.add_runtime_dependency(%q<i18n>, [">= 0"])
51
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
52
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
47
53
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
48
54
  else
55
+ s.add_dependency(%q<activesupport>, [">= 2.3.5"])
56
+ s.add_dependency(%q<i18n>, [">= 0"])
57
+ s.add_dependency(%q<jeweler>, [">= 0"])
58
+ s.add_dependency(%q<shoulda>, [">= 0"])
49
59
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
50
60
  end
51
61
  else
62
+ s.add_dependency(%q<activesupport>, [">= 2.3.5"])
63
+ s.add_dependency(%q<i18n>, [">= 0"])
64
+ s.add_dependency(%q<jeweler>, [">= 0"])
65
+ s.add_dependency(%q<shoulda>, [">= 0"])
52
66
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
53
67
  end
54
68
  end
@@ -3,11 +3,11 @@ require 'helper'
3
3
  class TestDateExtension < Test::Unit::TestCase
4
4
  context "Date" do
5
5
  should "know what quarter it is in March" do
6
- assert_equal 1,Date.parse("03/15/2010").quarter
6
+ assert_equal 1,Date.civil(2010,3,15).quarter
7
7
  end
8
8
 
9
9
  should "know what quarter it is in November" do
10
- assert_equal 4,Date.parse("11/15/2010").quarter
10
+ assert_equal 4,Date.civil(2010,11,15).quarter
11
11
  end
12
12
  end
13
13
 
@@ -3,39 +3,39 @@ require 'helper'
3
3
  class TestQuarter < Test::Unit::TestCase
4
4
  context "Quarter" do
5
5
  should "be capable of creation from strings" do
6
- assert_equal Date.parse("01/01/2009"),Quarter.new("2009","1").start_date
6
+ assert_equal Date.civil(2009,1,1),Quarter.new("2009","1").start_date
7
7
  end
8
8
 
9
9
  should "calculate start date for first quarter" do
10
- assert_equal Date.parse("01/01/2009"),Quarter.new(2009,1).start_date
10
+ assert_equal Date.civil(2009,1,1),Quarter.new(2009,1).start_date
11
11
  end
12
12
 
13
13
  should "calculate start date for second quarter" do
14
- assert_equal Date.parse("04/01/2009"),Quarter.new(2009,2).start_date
14
+ assert_equal Date.civil(2009,4,1),Quarter.new(2009,2).start_date
15
15
  end
16
16
 
17
17
  should "calculate start date for third quarter" do
18
- assert_equal Date.parse("07/01/2009"),Quarter.new(2009,3).start_date
18
+ assert_equal Date.civil(2009,7,1),Quarter.new(2009,3).start_date
19
19
  end
20
20
 
21
21
  should "calculate start date for fourth quarter" do
22
- assert_equal Date.parse("10/01/2009"),Quarter.new(2009,4).start_date
22
+ assert_equal Date.civil(2009,10,1),Quarter.new(2009,4).start_date
23
23
  end
24
24
 
25
25
  should "calculate end date for first quarter" do
26
- assert_equal Date.parse("03/31/2009"),Quarter.new(2009,1).end_date
26
+ assert_equal Date.civil(2009,3,31),Quarter.new(2009,1).end_date
27
27
  end
28
28
 
29
29
  should "calculate end date for second quarter" do
30
- assert_equal Date.parse("06/30/2009"),Quarter.new(2009,2).end_date
30
+ assert_equal Date.civil(2009,6,30),Quarter.new(2009,2).end_date
31
31
  end
32
32
 
33
33
  should "calculate end date for third quarter" do
34
- assert_equal Date.parse("09/30/2009"),Quarter.new(2009,3).end_date
34
+ assert_equal Date.civil(2009,9,30),Quarter.new(2009,3).end_date
35
35
  end
36
36
 
37
37
  should "calculate end date for fourth quarter" do
38
- assert_equal Date.parse("12/31/2009"),Quarter.new(2009,4).end_date
38
+ assert_equal Date.civil(2009,12,31),Quarter.new(2009,4).end_date
39
39
  end
40
40
 
41
41
  should "be equal to other quarter made from same year and quarter" do
@@ -55,7 +55,7 @@ class TestQuarter < Test::Unit::TestCase
55
55
  end
56
56
 
57
57
  should "produce a hash for parameters with start_date and end_date" do
58
- assert_equal({:start_date=>Date.parse("10/01/2009"),:end_date=>Date.parse("12/31/2009")},@quarter.date_hash)
58
+ assert_equal({:start_date=>Date.civil(2009,10,1),:end_date=>Date.civil(2009,12,31)},@quarter.date_hash)
59
59
  end
60
60
 
61
61
  should "produce a params hash with strings for dates" do
@@ -11,11 +11,11 @@ class TestQuarterDriven < Test::Unit::TestCase
11
11
  end
12
12
 
13
13
  should "delegate start date to quarter object" do
14
- assert_equal Date.parse("4/1/2010"),@model.start_date
14
+ assert_equal Date.civil(2010,4,1),@model.start_date
15
15
  end
16
16
 
17
17
  should "delegate end date to quarter object" do
18
- assert_equal Date.parse("6/30/2010"),@model.end_date
18
+ assert_equal Date.civil(2010,6,-1),@model.end_date
19
19
  end
20
20
 
21
21
  should "delegate quarter stamp to quarter object" do
@@ -3,12 +3,11 @@ require 'helper'
3
3
  class TestTimeExtension < Test::Unit::TestCase
4
4
  context "Time" do
5
5
  should "know what quarter it is in March" do
6
- assert_equal 1,Time.parse("03/15/2010 9:30 AM").quarter
6
+ assert_equal 1,Time.local(2010,3,15,9,30).quarter
7
7
  end
8
8
 
9
9
  should "know what quarter it is in November" do
10
- assert_equal 4,Time.parse("11/15/2010 4:45 PM").quarter
10
+ assert_equal 4,Time.local(2010,11,15,16,45).quarter
11
11
  end
12
12
  end
13
-
14
13
  end
metadata CHANGED
@@ -1,47 +1,111 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: quarter_time
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 1
10
- version: 1.0.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - evizitei
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-02-21 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: thoughtbot-shoulda
12
+ date: 2012-06-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.3.5
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.3.5
30
+ - !ruby/object:Gem::Dependency
31
+ name: i18n
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: jeweler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
22
55
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
24
57
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: shoulda
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
32
70
  type: :development
33
- version_requirements: *id001
34
- description: A simple gem for dealing with quarter logic. I happen to have a project where half the models in the database recur every three months as part of a "quarter" of the year. Within the code, we constantly are asking "what quarter is this for?", or "show me all the records for this quarter". Well, now I need the same power on another application, so say hello to "quarter_time".
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: thoughtbot-shoulda
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: A simple gem for dealing with quarter logic. I happen to have a project
95
+ where half the models in the database recur every three months as part of a "quarter"
96
+ of the year. Within the code, we constantly are asking "what quarter is this for?",
97
+ or "show me all the records for this quarter". Well, now I need the same power
98
+ on another application, so say hello to "quarter_time".
35
99
  email: ethan.vizitei@gmail.com
36
100
  executables: []
37
-
38
101
  extensions: []
39
-
40
- extra_rdoc_files:
102
+ extra_rdoc_files:
41
103
  - LICENSE
42
104
  - README.rdoc
43
- files:
105
+ files:
44
106
  - .document
107
+ - Gemfile
108
+ - Gemfile.lock
45
109
  - LICENSE
46
110
  - README.rdoc
47
111
  - Rakefile
@@ -60,36 +124,30 @@ files:
60
124
  - test/test_time_extensions.rb
61
125
  homepage: http://github.com/evizitei/quarter_time
62
126
  licenses: []
63
-
64
127
  post_install_message:
65
128
  rdoc_options: []
66
-
67
- require_paths:
129
+ require_paths:
68
130
  - lib
69
- required_ruby_version: !ruby/object:Gem::Requirement
131
+ required_ruby_version: !ruby/object:Gem::Requirement
70
132
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ segments:
76
138
  - 0
77
- version: "0"
78
- required_rubygems_version: !ruby/object:Gem::Requirement
139
+ hash: -4175321490826533987
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
141
  none: false
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- hash: 3
84
- segments:
85
- - 0
86
- version: "0"
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
87
146
  requirements: []
88
-
89
147
  rubyforge_project:
90
- rubygems_version: 1.8.15
148
+ rubygems_version: 1.8.23
91
149
  signing_key:
92
150
  specification_version: 3
93
- summary: library for measuring time in quarters (three month periods) and interacting with models that are tied to a specific quarter.
151
+ summary: library for measuring time in quarters (three month periods) and interacting
152
+ with models that are tied to a specific quarter.
94
153
  test_files: []
95
-