fyuk 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  = fyuk
2
2
 
3
- Description goes here.
3
+ Small Ruby gem for dealing with the UK financial year.
4
4
 
5
5
  == Contributing to fyuk
6
6
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.1.1
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "fyuk"
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
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"]
@@ -17,6 +17,7 @@ class UkFinancialYear
17
17
  # @param [String] s the two years of the financial year in the form
18
18
  # of the first year as four digits, a '/', then the last year as
19
19
  # two digits
20
+ # @raise [RuntimeError] if the string cannot be parsed to a financial year
20
21
  # @return [UkFinancialYear] the financial year specified by the string
21
22
  def UkFinancialYear.from_s s
22
23
  if /^(?<year1>\d{4})\/(?<year2>\d{2})$/ =~ s
@@ -50,6 +51,18 @@ class UkFinancialYear
50
51
  @range.include? date
51
52
  end
52
53
 
54
+ # returns the next financial year
55
+ # @return [UkFinancialYear] the next financial year
56
+ def next
57
+ UkFinancialYear.new self.first_day.next_year
58
+ end
59
+
60
+ # returns the previous financial year
61
+ # @return [UkFinancialYear] the previous financial year
62
+ def previous
63
+ UkFinancialYear.new self.first_day.prev_year
64
+ end
65
+
53
66
  # returns string representation of the financial year in the form '2000/01'
54
67
  # @return [String] representation in the form of the first year as four
55
68
  # digits, a '/', then the last year as two digits
@@ -62,7 +75,7 @@ class UkFinancialYear
62
75
  self.first_day == other.first_day
63
76
  end
64
77
 
65
- # lesser financial years are those which occur first in time
78
+ # lesser financial years are those which occur earliest
66
79
  def <=>(other)
67
80
  self.first_day <=> other.first_day
68
81
  end
@@ -66,37 +66,37 @@ describe UkFinancialYear do
66
66
 
67
67
  describe "#to_s" do
68
68
  it "is the four-digit year then a '/' then a two-digit year" do
69
- fy = UkFinancialYear.new(Date.parse '7 Apr 2011')
69
+ fy = UkFinancialYear.new Date.parse '7 Apr 2011'
70
70
  fy.to_s.should == '2011/12'
71
71
  end
72
72
 
73
73
  it "is 1999/00 for the turn of the millenium" do
74
- fy = UkFinancialYear.new(Date.parse '7 Apr 1999')
74
+ fy = UkFinancialYear.new Date.parse '7 Apr 1999'
75
75
  fy.to_s.should == '1999/00'
76
76
  end
77
77
  end
78
78
 
79
79
  describe "#from_s" do
80
80
  it "is 2010/11 for '2010/11'" do
81
- fy = UkFinancialYear.from_s('2010/11')
81
+ fy = UkFinancialYear.from_s '2010/11'
82
82
  fy.first_day.should == Date.parse('6 Apr 2010')
83
83
  fy.last_day.should == Date.parse('5 Apr 2011')
84
84
  end
85
85
 
86
86
  it "is 2002/03 for '2002/03'" do
87
- fy = UkFinancialYear.from_s('2002/03')
87
+ fy = UkFinancialYear.from_s '2002/03'
88
88
  fy.first_day.should == Date.parse('6 Apr 2002')
89
89
  fy.last_day.should == Date.parse('5 Apr 2003')
90
90
  end
91
91
 
92
92
  it "is 1998/99 for '1998/99'" do
93
- fy = UkFinancialYear.from_s('1998/99')
93
+ fy = UkFinancialYear.from_s '1998/99'
94
94
  fy.first_day.should == Date.parse('6 Apr 1998')
95
95
  fy.last_day.should == Date.parse('5 Apr 1999')
96
96
  end
97
97
 
98
98
  it "is 1999/00 for '1999/00'" do
99
- fy = UkFinancialYear.from_s('1999/00')
99
+ fy = UkFinancialYear.from_s '1999/00'
100
100
  fy.first_day.should == Date.parse('6 Apr 1999')
101
101
  fy.last_day.should == Date.parse('5 Apr 2000')
102
102
  end
@@ -120,6 +120,20 @@ describe UkFinancialYear do
120
120
  end
121
121
  end
122
122
 
123
+ describe "#next" do
124
+ it "returns the next financial year" do
125
+ fy = UkFinancialYear.from_s '2011/12'
126
+ fy.next.should == UkFinancialYear.from_s('2012/13')
127
+ end
128
+ end
129
+
130
+ describe "#previous" do
131
+ it "returns the previous financial year" do
132
+ fy = UkFinancialYear.from_s '2011/12'
133
+ fy.previous.should == UkFinancialYear.from_s('2010/11')
134
+ end
135
+ end
136
+
123
137
  describe "object comparison" do
124
138
  it "is less than for earlier FYs" do
125
139
  UkFinancialYear.new(Date.parse '5 Apr 2011').should be < UkFinancialYear.new(Date.parse '6 Apr 2011')
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.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-21 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70191725721420 !ruby/object:Gem::Requirement
16
+ requirement: &70299305466680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.3.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70191725721420
24
+ version_requirements: *70299305466680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: yard
27
- requirement: &70191725720840 !ruby/object:Gem::Requirement
27
+ requirement: &70299305466200 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.6.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70191725720840
35
+ version_requirements: *70299305466200
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70191725720260 !ruby/object:Gem::Requirement
38
+ requirement: &70299305465700 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70191725720260
46
+ version_requirements: *70299305465700
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &70191725719640 !ruby/object:Gem::Requirement
49
+ requirement: &70299305465180 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70191725719640
57
+ version_requirements: *70299305465180
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &70191725719100 !ruby/object:Gem::Requirement
60
+ requirement: &70299305464660 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70191725719100
68
+ version_requirements: *70299305464660
69
69
  description: Small library with methods for finding the financial or fiscal year for
70
70
  a particular date and suchlike
71
71
  email: nigel-lowry@ultra.eclipse.co.uk
@@ -102,7 +102,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
102
  version: '0'
103
103
  segments:
104
104
  - 0
105
- hash: -881557483887040957
105
+ hash: 4011342982725739789
106
106
  required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements: