fyuk 0.5.0 → 0.6.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 CHANGED
@@ -16,3 +16,7 @@ end
16
16
  group :test do
17
17
  gem 'timecop'
18
18
  end
19
+
20
+ group :development, :test do
21
+ gem 'debugger'
22
+ end
@@ -1,6 +1,14 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ columnize (0.3.6)
5
+ debugger (1.1.3)
6
+ columnize (>= 0.3.1)
7
+ debugger-linecache (~> 1.1.1)
8
+ debugger-ruby_core_source (~> 1.1.2)
9
+ debugger-linecache (1.1.1)
10
+ debugger-ruby_core_source (>= 1.1.1)
11
+ debugger-ruby_core_source (1.1.2)
4
12
  diff-lcs (1.1.3)
5
13
  git (1.2.5)
6
14
  jeweler (1.6.4)
@@ -25,6 +33,7 @@ PLATFORMS
25
33
 
26
34
  DEPENDENCIES
27
35
  bundler (~> 1.0.0)
36
+ debugger
28
37
  jeweler (~> 1.6.4)
29
38
  rcov
30
39
  rspec (~> 2.9.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.6.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "fyuk"
8
- s.version = "0.5.0"
8
+ s.version = "0.6.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nigel Lowry"]
12
- s.date = "2012-05-12"
12
+ s.date = "2012-06-27"
13
13
  s.description = "Small library with methods for finding the financial or fiscal year for a particular date and suchlike"
14
14
  s.email = "nigel-lowry@ultra.eclipse.co.uk"
15
15
  s.extra_rdoc_files = [
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.homepage = "http://github.com/nigel-lowry/fyuk"
35
35
  s.licenses = ["MIT"]
36
36
  s.require_paths = ["lib"]
37
- s.rubygems_version = "1.8.23"
37
+ s.rubygems_version = "1.8.24"
38
38
  s.summary = "Small Ruby gem for dealing with dates in the UK financial year"
39
39
 
40
40
  if s.respond_to? :specification_version then
@@ -46,12 +46,14 @@ Gem::Specification.new do |s|
46
46
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
47
47
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
48
48
  s.add_development_dependency(%q<rcov>, [">= 0"])
49
+ s.add_development_dependency(%q<debugger>, [">= 0"])
49
50
  else
50
51
  s.add_dependency(%q<rspec>, ["~> 2.9.0"])
51
52
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
52
53
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
53
54
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
54
55
  s.add_dependency(%q<rcov>, [">= 0"])
56
+ s.add_dependency(%q<debugger>, [">= 0"])
55
57
  end
56
58
  else
57
59
  s.add_dependency(%q<rspec>, ["~> 2.9.0"])
@@ -59,6 +61,7 @@ Gem::Specification.new do |s|
59
61
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
60
62
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
61
63
  s.add_dependency(%q<rcov>, [">= 0"])
64
+ s.add_dependency(%q<debugger>, [">= 0"])
62
65
  end
63
66
  end
64
67
 
@@ -90,6 +90,17 @@ class UkFinancialYear
90
90
  self.first_day.after?(date_to_compare date_or_fy)
91
91
  end
92
92
 
93
+ # returns the period before this date in the financial year
94
+ # @param [Date] date a date in the financial year
95
+ # @return [Range<Date>] the period before this date in the the
96
+ # financial year
97
+ def period_before date
98
+ raise "#{date} is before FY #{to_s}" if date < first_day
99
+ raise "#{date} is after FY #{to_s}" if date > last_day
100
+
101
+ first_day...date
102
+ end
103
+
93
104
  # equality method
94
105
  def == other
95
106
  self.first_day == other.first_day
@@ -109,4 +109,34 @@ describe UkFinancialYear do
109
109
  end
110
110
  end
111
111
  end
112
+
113
+ describe "#fy_before" do
114
+ before :each do
115
+ @fy = UkFinancialYear.from_s '2012/13'
116
+ end
117
+
118
+ subject { @fy }
119
+
120
+ it "raises an error for a date before the FY" do
121
+ expect {
122
+ @fy.period_before(Date.parse '5 Apr 2012')
123
+ }.to raise_error(
124
+ RuntimeError,
125
+ /2012-04-05 is before FY 2012\/13/
126
+ )
127
+ end
128
+
129
+ it "raises an error for a date after the FY" do
130
+ expect {
131
+ @fy.period_before(Date.parse '6 Apr 2013')
132
+ }.to raise_error(
133
+ RuntimeError,
134
+ /2013-04-06 is after FY 2012\/13/
135
+ )
136
+ end
137
+
138
+ specify { @fy.period_before(Date.parse '6 Apr 2012').should == (Date.parse('6 Apr 2012')...Date.parse('6 Apr 2012')) }
139
+ specify { @fy.period_before(Date.parse '7 Apr 2012').should == (Date.parse('6 Apr 2012')...Date.parse('7 Apr 2012')) }
140
+ specify { @fy.period_before(Date.parse '8 Apr 2012').should == (Date.parse('6 Apr 2012')...Date.parse('8 Apr 2012')) }
141
+ end
112
142
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fyuk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-12 00:00:00.000000000 Z
12
+ date: 2012-06-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -91,6 +91,22 @@ dependencies:
91
91
  - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: debugger
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
94
110
  description: Small library with methods for finding the financial or fiscal year for
95
111
  a particular date and suchlike
96
112
  email: nigel-lowry@ultra.eclipse.co.uk
@@ -128,7 +144,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
144
  version: '0'
129
145
  segments:
130
146
  - 0
131
- hash: -2786941839308588920
147
+ hash: -341857106633386202
132
148
  required_rubygems_version: !ruby/object:Gem::Requirement
133
149
  none: false
134
150
  requirements:
@@ -137,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
153
  version: '0'
138
154
  requirements: []
139
155
  rubyforge_project:
140
- rubygems_version: 1.8.23
156
+ rubygems_version: 1.8.24
141
157
  signing_key:
142
158
  specification_version: 3
143
159
  summary: Small Ruby gem for dealing with dates in the UK financial year