double_entry 0.3.0 → 0.3.1

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.
@@ -12,9 +12,8 @@ module DoubleEntry
12
12
  end
13
13
 
14
14
  def make(start = nil, finish = nil)
15
- raise "Must specify start of range" if start == nil && require_start?
16
- start = type.from_time(Time.parse(start || Reporting.configuration.start_of_business))
17
- finish = finish ? type.from_time(Time.parse(finish)) : type.current
15
+ start = start_range(start)
16
+ finish = finish_range(finish)
18
17
  [ start ].tap do |array|
19
18
  while start != finish
20
19
  start = start.next
@@ -23,6 +22,16 @@ module DoubleEntry
23
22
  end
24
23
  end
25
24
 
25
+ def start_range(start = nil)
26
+ raise "Must specify start of range" if start.blank? && require_start?
27
+ start_time = start ? Time.parse(start) : Reporting.configuration.start_of_business
28
+ type.from_time(start_time)
29
+ end
30
+
31
+ def finish_range(finish = nil)
32
+ finish ? type.from_time(Time.parse(finish)) : type.current
33
+ end
34
+
26
35
  FACTORIES = {
27
36
  'hour' => new(:type => HourRange, :require_start => true),
28
37
  'day' => new(:type => DayRange, :require_start => true),
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module DoubleEntry
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
@@ -110,12 +110,13 @@ module DoubleEntry::Reporting
110
110
  context 'for "year" range type' do
111
111
  let(:range_type) { 'year' }
112
112
 
113
- context 'given start is "2007-05-03" and finish is "2008-08-24"' do
114
- let(:start) { '2007-05-03' }
115
- let(:finish) { '2008-08-24' }
113
+ context 'given the date is "2009-11-23"' do
114
+ before { Timecop.freeze(Time.new(2009, 11, 23)) }
115
+
116
+ context 'given start is "2007-05-03" and finish is "2008-08-24"' do
117
+ let(:start) { '2007-05-03' }
118
+ let(:finish) { '2008-08-24' }
116
119
 
117
- context 'and the date is "2009-11-23"' do
118
- before { Timecop.freeze(Time.new(2009, 11, 23)) }
119
120
 
120
121
  it 'takes notice of start and finish' do
121
122
  should eq [
@@ -123,9 +124,17 @@ module DoubleEntry::Reporting
123
124
  YearRange.from_time(Time.new(2008)),
124
125
  ]
125
126
  end
127
+ end
128
+
129
+ context 'given the start of business is "2006-07-10"' do
130
+ before do
131
+ allow(DoubleEntry::Reporting).
132
+ to receive_message_chain('configuration.start_of_business').
133
+ and_return(Time.new(2006, 7, 10))
134
+ end
126
135
 
127
- context 'given finish is nil' do
128
- let(:start) { '2006-08-03' }
136
+ context 'given start and finish are nil' do
137
+ let(:start) { nil }
129
138
  let(:finish) { nil }
130
139
  it {
131
140
  should eq [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: double_entry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: