quarter_time 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
-