sie 1.0.2 → 1.0.3

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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NTMyNmZiYTNmZTkzZTg3OWM2ODkzNmI2N2FmNjdjMzc1Yjc0OGJiZg==
5
+ data.tar.gz: !binary |-
6
+ OTA3ODk3MjY5MThjOTE4ODU0MGNjNzM1YTQ5MjkxNGYzZmY1MzZhMQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YzE2ODEzZmYyNDMzZThlNTVjZWNjZmVkOTM4NjE3NWQ0Zjc0MDhkZTY5OGM4
10
+ M2IxNjBjZWNkMzlkZjMzMzMxMWExODNlY2MyYzU0OWI5NjFmOGJkMjEzMTJj
11
+ MGYzODQzZDkxMmY2ZDA4ZmY0ZGQ5M2U2NDY3OTQ3MGE2YWU2NjQ=
12
+ data.tar.gz: !binary |-
13
+ YjA4NDlkY2IxYjJmOGVkM2NmYWJmYTVmYmUxMGQ4ZTJkMTViZDg4ZGFiNjgz
14
+ NjM4NGQ4NTJlMGEyZWI4ZWFiOWUyMTE5ZTU2MGMzMWY0Nzk4ODk0YzBmZGI2
15
+ MTczYmQzYzhlNzM5NTAyYTJjYmU1MzQ2ZTZkMmVmMjk1YTYzNjM=
@@ -7,32 +7,31 @@ class Sie::Document
7
7
  :start_month, :from_date, :to_date
8
8
 
9
9
  def between
10
- from_date.upto(to_date).map { |date|
11
- financial_year = FinancialYear.new(date, start_month)
12
- financial_year.date_range(from_date, to_date)
13
- }.uniq
10
+ from_date.year.upto(to_date.year).map { |year|
11
+ financial_year = FinancialYear.new(year, start_month)
12
+ financial_year_date_range = financial_year.date_range
13
+ financial_year_date_range unless out_of_year_range(financial_year_date_range)
14
+ }.compact
15
+ end
16
+
17
+ private
18
+
19
+ def out_of_year_range(range)
20
+ range.last.year > to_date.year
14
21
  end
15
22
  end
16
23
 
17
24
  class FinancialYear
18
- pattr_initialize :date, :start_month
25
+ pattr_initialize :year, :start_month
19
26
 
20
- def date_range(from_date, to_date)
21
- first_date = [ start_of_year, from_date ].max
22
- last_date = [ end_of_year, to_date ].min
23
- (first_date.beginning_of_month..last_date.end_of_month)
27
+ def date_range
28
+ (start_of_year.beginning_of_month..end_of_year.end_of_month)
24
29
  end
25
30
 
26
31
  private
27
32
 
28
33
  def start_of_year
29
- start_of_year = Date.new(date.year, start_month, 1)
30
-
31
- if start_of_year <= date
32
- start_of_year
33
- else
34
- start_of_year << 12
35
- end
34
+ start_of_year = Date.new(year, start_month, 1)
36
35
  end
37
36
 
38
37
  def end_of_year
data/lib/sie/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sie
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -7,7 +7,7 @@ describe Sie::Document::FinancialYears, ".between" do
7
7
  Date.new(2011, 9, 1),
8
8
  Date.new(2012, 12, 31)
9
9
  ).should == [
10
- Date.new(2011, 9, 1)..Date.new(2011, 12, 31),
10
+ Date.new(2011, 1, 1)..Date.new(2011, 12, 31),
11
11
  Date.new(2012, 1, 1)..Date.new(2012, 12, 31),
12
12
  ]
13
13
  end
@@ -18,7 +18,7 @@ describe Sie::Document::FinancialYears, ".between" do
18
18
  Date.new(2011, 9, 1),
19
19
  Date.new(2013, 12, 31)
20
20
  ).should == [
21
- Date.new(2011, 9, 1)..Date.new(2011, 12, 31),
21
+ Date.new(2011, 1, 1)..Date.new(2011, 12, 31),
22
22
  Date.new(2012, 1, 1)..Date.new(2012, 12, 31),
23
23
  Date.new(2013, 1, 1)..Date.new(2013, 12, 31),
24
24
  ]
@@ -30,9 +30,9 @@ describe Sie::Document::FinancialYears, ".between" do
30
30
  Date.new(2011, 9, 1),
31
31
  Date.new(2014, 1, 31)
32
32
  ).should == [
33
- Date.new(2011, 9, 1)..Date.new(2012, 4, 30),
33
+ Date.new(2011, 5, 1)..Date.new(2012, 4, 30),
34
34
  Date.new(2012, 5, 1)..Date.new(2013, 4, 30),
35
- Date.new(2013, 5, 1)..Date.new(2014, 1, 31),
35
+ Date.new(2013, 5, 1)..Date.new(2014, 4, 30),
36
36
  ]
37
37
  end
38
38
 
@@ -42,7 +42,17 @@ describe Sie::Document::FinancialYears, ".between" do
42
42
  Date.new(2011, 9, 15),
43
43
  Date.new(2011, 10, 10)
44
44
  ).should == [
45
- Date.new(2011, 9, 1)..Date.new(2011, 10, 31),
45
+ Date.new(2011, 1, 1)..Date.new(2011, 12, 31),
46
+ ]
47
+ end
48
+
49
+ it "gives us the financial years between from_date and to_date" do
50
+ Sie::Document::FinancialYears.between(
51
+ 1,
52
+ Date.new(2011, 1, 1),
53
+ Date.new(2011, 12, 31)
54
+ ).should == [
55
+ Date.new(2011, 1, 1)..Date.new(2011, 12, 31)
46
56
  ]
47
57
  end
48
58
  end
@@ -95,7 +95,7 @@ describe Sie::Document, "#render" do
95
95
  expect(indexed_entry_attribute("rar", 1, "start")).to eq("20120101")
96
96
  expect(indexed_entry_attribute("rar", 1, "slut")).to eq("20121231")
97
97
  expect(indexed_entry_attribute("rar", 2, "arsnr")).to eq("-2")
98
- expect(indexed_entry_attribute("rar", 2, "start")).to eq("20110901")
98
+ expect(indexed_entry_attribute("rar", 2, "start")).to eq("20110101")
99
99
  expect(indexed_entry_attribute("rar", 2, "slut")).to eq("20111231")
100
100
  end
101
101
 
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
5
- prerelease:
4
+ version: 1.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Barsoom AB
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-03-03 00:00:00.000000000 Z
11
+ date: 2014-03-13 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: attr_extras
16
- requirement: &70247794044260 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70247794044260
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: activesupport
27
- requirement: &70247794043840 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ! '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70247794043840
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: bundler
38
- requirement: &70247794043340 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
45
  - - ~>
42
46
  - !ruby/object:Gem::Version
43
47
  version: '1.3'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *70247794043340
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: rake
49
- requirement: &70247794042920 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *70247794042920
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: rspec
60
- requirement: &70247794042460 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
73
  - - ! '>='
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :development
67
77
  prerelease: false
68
- version_requirements: *70247794042460
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: SIE parser and generator
70
84
  email:
71
85
  - all@barsoom.se
@@ -111,33 +125,26 @@ files:
111
125
  homepage: ''
112
126
  licenses:
113
127
  - MIT
128
+ metadata: {}
114
129
  post_install_message:
115
130
  rdoc_options: []
116
131
  require_paths:
117
132
  - lib
118
133
  required_ruby_version: !ruby/object:Gem::Requirement
119
- none: false
120
134
  requirements:
121
135
  - - ! '>='
122
136
  - !ruby/object:Gem::Version
123
137
  version: '0'
124
- segments:
125
- - 0
126
- hash: -3882600270749227957
127
138
  required_rubygems_version: !ruby/object:Gem::Requirement
128
- none: false
129
139
  requirements:
130
140
  - - ! '>='
131
141
  - !ruby/object:Gem::Version
132
142
  version: '0'
133
- segments:
134
- - 0
135
- hash: -3882600270749227957
136
143
  requirements: []
137
144
  rubyforge_project:
138
- rubygems_version: 1.8.5
145
+ rubygems_version: 2.2.1
139
146
  signing_key:
140
- specification_version: 3
147
+ specification_version: 4
141
148
  summary: Parses and generates SIE files (http://sie.se/)
142
149
  test_files:
143
150
  - spec/fixtures/sie_file.se