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 +9 -0
- data/Gemfile.lock +29 -0
- data/VERSION +1 -1
- data/lib/quarter_time/quarter.rb +4 -2
- data/quarter_time.gemspec +17 -3
- data/test/test_date_extensions.rb +2 -2
- data/test/test_quarter.rb +10 -10
- data/test/test_quarter_driven.rb +2 -2
- data/test/test_time_extensions.rb +2 -3
- metadata +108 -50
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -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.0
|
data/lib/quarter_time/quarter.rb
CHANGED
@@ -16,11 +16,13 @@ class Quarter
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def start_date
|
19
|
-
|
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
|
-
|
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
|
data/quarter_time.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "quarter_time"
|
8
|
-
s.version = "1.0
|
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-
|
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.
|
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.
|
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.
|
10
|
+
assert_equal 4,Date.civil(2010,11,15).quarter
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
data/test/test_quarter.rb
CHANGED
@@ -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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|
data/test/test_quarter_driven.rb
CHANGED
@@ -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.
|
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.
|
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.
|
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.
|
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
|
-
|
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
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
57
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
34
|
-
|
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
|
-
|
75
|
-
segments:
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
segments:
|
76
138
|
- 0
|
77
|
-
|
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
|
-
|
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.
|
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
|
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
|
-
|