treasurer 0.9.2 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 527b7bf070b87e8545bbe39aa6658bfcf0ab6eeb
4
- data.tar.gz: 44540e9865df8463262bd9144d3c24a1b272f1f3
3
+ metadata.gz: a55d811fa5407a680b22be526598e6398fd1a55e
4
+ data.tar.gz: 64be91516a253dade32ae4391d8fee7c5a183cdc
5
5
  SHA512:
6
- metadata.gz: ceddf4261e7c3375161643d1536857e1d0d69310c1328796706cbd1d66eafc98f49554fbc19065435c7c57050da33c5d6d8e1b1f97e3d8a678713351244e1ad1
7
- data.tar.gz: 1aea117fd0245c4e1bf33a1bcdd4e678d4a284951b4c8b2670cf59b48a648131c19847a7698e0927f24f094d2eda666714b88760b3c68582b3ee9ed2a807bc7b
6
+ metadata.gz: 7dee8f5e8d9a5ef0a8b572458f2662c27ddcf75b63b86651d160afdf71fac29e7e896cfeef7eb9b788c77c1412530734c0f4b726c16a9759f907c1f65faf6b3b
7
+ data.tar.gz: d54382492cabf560c32acd50dc0651386e8d7fd92ab0506a05f651e56911e7724d93a1298ad20cfe0ae422998e1a3f9293daa6e4d6806981b1643c49d702cd71
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source "http://rubygems.org"
3
3
  # Example:
4
4
  gem "activesupport", ">= 5.0.0"
5
5
  gem "coderunner", ">= 0.14.16"
6
- gem "budgetcrmod", "~> 0.3"
6
+ gem "budgetcrmod", "~> 0.4"
7
7
  gem "command-line-flunky", ">= 1.0.0"
8
8
 
9
9
  # Add dependencies to develop your gem here.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.2
1
+ 0.9.3
@@ -96,8 +96,8 @@ class Treasurer
96
96
  # options (copts) hash
97
97
  def setup(copts)
98
98
  # None neededed
99
- copts[:b] = copts[:b].to_i if copts[:b]
100
- copts[:a] = copts[:a].to_i if copts[:a]
99
+ #copts[:b] = copts[:b].to_i if copts[:b]
100
+ #copts[:a] = copts[:a].to_i if copts[:a]
101
101
  copts[:t] = Date.parse(copts[:t]) if copts[:t]
102
102
  end
103
103
  def verbosity
@@ -61,7 +61,7 @@ class Treasurer::Reporter
61
61
  def generate_report_account
62
62
  p [name_c, @report_runs.class, @runs.class]
63
63
  @report_account = ReportAccount.new(@name, @reporter, @runner, nil, @external, {currency: @currency, input_runs: @report_runs})
64
- @report_account.instance_variable_set(:@currency, @reporter.report_currency)
64
+ @report_account.instance_variable_set(:@currency, @reporter.report_currency||currency)
65
65
  @report_account.instance_variable_set(:@original_currency, currency)
66
66
  end
67
67
 
@@ -176,7 +176,7 @@ class Treasurer::Reporter
176
176
  @runs.find_all{|r| r.days_ago(today) < days_before and r.date <= today }.map{|r| (@external) ? r.deposit : r.withdrawal }.sum || 0
177
177
  end
178
178
  def currency
179
- @currency || (info[:currencies] && info[:currencies][0])
179
+ @currency || (info[:currencies] && info[:currencies][0]) || DEFAULT_CURRENCY
180
180
  end
181
181
  def currency_label
182
182
  if currency
@@ -234,8 +234,14 @@ EOF
234
234
  #(discretionary ? @reporter.sum_regular({name => info}, date) : 0.0)
235
235
  end
236
236
  def linked_projected_account_info
237
- #Hash[@reporter.projected_accounts_info.find_all{|ext_ac,inf| inf[:linked_accounts] == name and ext_ac.currency == currency}]
238
- Hash[@reporter.projected_accounts_info.find_all{|ext_ac,inf| inf[:linked_accounts][original_currency] and inf[:linked_accounts][original_currency] == name and ext_ac.original_currency == original_currency}]
237
+ #Hash[@reporter.projected_accounts_info.find_all{|ext_ac,inf| inf[:linked_account] == name and ext_ac.currency == currency}]
238
+ Hash[@reporter.projected_accounts_info.find_all{|ext_ac,inf|
239
+ la = inf[:linked_account] and (
240
+ la == name or
241
+ (la.kind_of? Hash and la[original_currency] and
242
+ la[original_currency] == name and ext_ac.original_currency == original_currency)
243
+ )
244
+ }]
239
245
  end
240
246
  def cache
241
247
  @cache ||={}
@@ -250,7 +256,7 @@ EOF
250
256
  transfers.each do |accs, trans|
251
257
  next unless accs.include? name
252
258
  trans.each do |item, details|
253
- if details[:currency] != currency
259
+ if details[:currency] and details[:currency] != currency
254
260
  #p ['LAGT(O', details[:currency], currency, details, name_c, item]
255
261
  details[:size] *= EXCHANGE_RATES[[details[:currency], currency]]
256
262
  end
@@ -58,6 +58,7 @@ module Analysis
58
58
  date-=1
59
59
  end
60
60
  when :day
61
+ raise "Period of days not implemented yet"
61
62
  while date > @start_date
62
63
  items_temp += items.find_all{|r| r.date == date}
63
64
  #expenditure += (account_items[-1].map{|r| r.debit}+[0]).sum
@@ -24,7 +24,7 @@ class << self
24
24
  end
25
25
  def fetch_reporter(copts = {})
26
26
  load_treasurer_folder(copts)
27
- Reporter.new(CodeRunner.fetch_runner(h: :component, A: true), days_before: copts[:b]||360, days_ahead: copts[:a]||180, today: copts[:t], report_currency: copts[:r])
27
+ Reporter.new(CodeRunner.fetch_runner(h: :component), days_before: copts[:b]||360, days_ahead: copts[:a]||180, today: copts[:t], report_currency: copts[:r])
28
28
  end
29
29
  def status(copts={})
30
30
  load_treasurer_folder(copts)
@@ -30,18 +30,20 @@ FUTURE_TRANSFERS = {
30
30
 
31
31
  FUTURE_TRANSFERS.default = {}
32
32
 
33
+ DEFAULT_CURRENCY = "GBP"
33
34
 
34
35
 
35
36
  ACCOUNT_INFO = {
36
- Monthly: {linked_account: :FirstBank, period: [1, :month], monthday: 1, start: nil, end: nil, discretionary: false},
37
- MonthlySecondBank: {linked_account: :SecondBank, period: [1, :month], monthday: 1, start: nil, end: nil, discretionary: false},
38
- Weekly: {linked_account: :FirstBank, period: [7, :day], monthday: nil, start: nil, end: nil, discretionary: true},
39
- WeeklySecondBank: {linked_account: :SecondBank, period: [7, :day], monthday: nil, start: nil, end: nil, discretionary: true},
40
- MyHoliday: {linked_account: :SecondBank, period: [1, :day], monthday: nil, start: Date.parse("02/12/2013"), end: Date.parse("2/01/2014"), discretionary: false},
37
+ MonthlyExpenses: {linked_account: :FirstBank, period: [1, :month], monthday: 1, start: nil, end: nil, discretionary: false},
38
+ #MonthlySecondBank: {linked_account: :SecondBank, period: [1, :month], monthday: 1, start: nil, end: nil, discretionary: false},
39
+ DailyExpenses: {linked_account: :FirstBank, period: [1, :month], monthday: 1, start: nil, end: nil, discretionary: true},
40
+ #WeeklySecondBank: {linked_account: :SecondBank, period: [7, :day], monthday: nil, start: nil, end: nil, discretionary: true},
41
+ Splurge: {linked_account: :SecondBank, period: [1, :month], monthday: 1, start: Date.parse("02/12/2013"), discretionary: true},
41
42
  PersonalLoans: {type: :Liability},
42
43
  FirstBank: {type: :Asset},
43
44
  SecondBank: {type: :Asset},
44
- Pay: {linked_account: :FirstBank, type: :Income},
45
+ Cash: {type: :Asset},
46
+ Income: {linked_account: :FirstBank, type: :Income},
45
47
  }
46
48
 
47
49
  def in_date(item)
@@ -72,48 +74,7 @@ def red_line(account, date)
72
74
  end
73
75
  end
74
76
 
77
+ ASSETS={}
75
78
 
76
- def sub_account
77
- case description
78
- when /co-op|sainsbury/i
79
- :Food
80
- when /insurance/i
81
- :Insurance
82
- when /Vodafone/i
83
- :Phone
84
- when /Adams/i
85
- :Rent
86
- when /Carfax|Lnk/i
87
- :Cash
88
- when /andalus/i, /angels/i, /maggie arms/i, /barley mow/i
89
- :Entertainment
90
- when /blackwell/i
91
- :Books
92
- else
93
- :Unknown
94
- end
95
- end
96
-
97
- def external_account
98
- case description
99
- when /Vodafone/i
100
- :Monthly
101
- when /norries/i
102
- :PersonalLoans
103
- when /my employer/i
104
- :Pay
105
- else
106
- case sub_account
107
- when :Food, :Entertainment
108
- :Weekly
109
- when :Insurance, :Phone, :Rent
110
- :Monthly
111
- when :Books, :Cash
112
- :WeeklySecondBank
113
- else
114
- :Unknown
115
- end
116
- end
117
- end
118
-
79
+
119
80
  end
@@ -75,21 +75,43 @@ class Treasurer
75
75
  attr_reader :stable_discretionary_account_factors
76
76
  attr_accessor :projected_account_factor
77
77
  attr_reader :accounts
78
- attr_reader :equity
78
+ attr_reader :equities, :equity
79
79
  attr_reader :projected_accounts_info
80
80
  attr_reader :days_before
81
81
  attr_reader :report_currency
82
82
  attr_reader :accounts_hash
83
83
  def initialize(runner, options)
84
84
  @runner = runner
85
- @days_ahead = options[:days_ahead]||180
86
- @days_before = options[:days_before]||360
85
+
87
86
  @today = options[:today]||Date.today
87
+ @days_ahead = case da = options[:days_ahead]
88
+ when NilClass, ""
89
+ 180
90
+ when Integer
91
+ da
92
+ when String
93
+ da =~ /^\d+$/ ? da.to_i : Date.parse(da) - @today
94
+ else
95
+ raise ArgumentError.new("days_ahead")
96
+ end
97
+ @days_before = case da = options[:days_before]
98
+ when NilClass, ""
99
+ 360
100
+ when Integer
101
+ da
102
+ when String
103
+ da =~ /^\d+$/ ? da.to_i : @today - Date.parse(da)
104
+ else
105
+ raise ArgumentError.new("days_before")
106
+ end
107
+ puts @days_before, options[:days_before]
108
+ sleep 2
109
+
88
110
  @start_date = @today - @days_before
89
111
  @end_date = @today + @days_ahead
90
112
  @runs = runner.component_run_list.values
91
113
  @currencies = ACCOUNT_INFO.map{|k,v| v[:currencies]}.flatten.uniq
92
- @report_currency = options[:report_currency]
114
+ @report_currency = options[:report_currency]
93
115
 
94
116
  if run = @runs.find{|r| not r.external_account}
95
117
  raise "External_account not specified for #{run.data_line}"
@@ -128,7 +150,12 @@ class Treasurer
128
150
  er = EXCHANGE_RATES[[curr, @report_currency]]
129
151
  r.deposit *= er
130
152
  r.withdrawal *= er
131
- r.balance *= er if r.has_balance?
153
+ begin
154
+ r.balance *= er if r.has_balance?
155
+ rescue => err
156
+ p [r.account, r.real_id, r.balance, er, r.data_line]
157
+ raise err
158
+ end
132
159
  end
133
160
  end
134
161
  ASSETS.each do |name, details|
@@ -0,0 +1,45 @@
1
+ # coding: utf-8
2
+ {"2010-09-03,CPT,000000,99999999,LTSB CARFAX OXFORDCD 03SEP10,0.00,20.00,156.33"=>
3
+ {:external_account=>:Cash, :sub_account=>:Withdrawal},
4
+ "2010-09-03,DD,000000,99999999,VODAFONE LIMITED,0.00,28.61,176.33"=>
5
+ {:external_account=>:MonthlyExpenses, :sub_account=>:Phone},
6
+ "2010-09-03,DEB,000000,99999999,ENDSLEIGH INSURANCE,0.00,24.63,204.94"=>
7
+ {:external_account=>:MonthlyExpenses, :sub_account=>:Insurance},
8
+ "2010-09-02,DEB,000000,99999999,MIDCOUNTIES CO-OP,0.00,32.65,229.57"=>
9
+ {:external_account=>:DailyExpenses, :sub_account=>:Food},
10
+ "2010-09-01,FPO,000000,99999999,MISS C ADAMS,0.00,150.00,262.22"=>
11
+ {:external_account=>:Splurge, :sub_account=>:Gifts},
12
+ "2010-09-01,DD,000000,99999999,PAYPAL PAYMENT,0.00,5.97,412.22"=>
13
+ {:external_account=>:Splurge, :sub_account=>:Computers},
14
+ "2010-09-01,DEB,000000,99999999,S390-BLACKWELLCD ,0.00,15.00,418.19"=>
15
+ {:external_account=>:Splurge, :sub_account=>:Books},
16
+ "2010-08-25,DEB,000000,99999999,MIDCOUNTIES CO-OP,0.00,52.65,229.57"=>
17
+ {:external_account=>:DailyExpenses, :sub_account=>:Food},
18
+ "2010-08-15,DEB,000000,99999999,MIDCOUNTIES CO-OP,0.00,12.65,229.57"=>
19
+ {:external_account=>:DailyExpenses, :sub_account=>:Food},
20
+ "2010-08-07,DEB,000000,99999999,MIDCOUNTIES CO-OP,0.00,32.65,229.57"=>
21
+ {:external_account=>:DailyExpenses, :sub_account=>:Food},
22
+ "2010-08-01,DEB,000000,99999999,MISS C ADAMS,0.00,150.00,418.19"=>
23
+ {:external_account=>:Splurge, :sub_account=>:Gifts},
24
+ "2010-09-05,CPT,222222,88888888,LNK WINDERMERE,0.00,30.00,860.75"=>
25
+ {:external_account=>:Cash, :sub_account=>:Withdrawal2},
26
+ "2010-09-05,FPO,222222,88888888,M H NORRIES,560.00,0.00,890.75"=>
27
+ {:external_account=>:DailyExpenses, :sub_account=>:Rent},
28
+ "2010-09-05,DEB,222222,88888888,SAINSBURY'S SMKT,0.00,6.05,1450.75"=>
29
+ {:external_account=>:DailyExpenses, :sub_account=>:Food},
30
+ "2010-09-05,DEB,222222,88888888,AL-ANDALUS,0.00,50.00,1456.80"=>
31
+ {:external_account=>:Splurge, :sub_account=>:EatingOut},
32
+ "2010-09-05,DEB,222222,88888888,ANGELS,0.00,11.50,1506.80"=>
33
+ {:external_account=>:Splurge, :sub_account=>:EatingOut},
34
+ "2010-09-01,DEB,222222,88888888,THE MAGGIE ARMS,0.00,48.00,1518.30"=>
35
+ {:external_account=>:Splurge, :sub_account=>:EatingOut},
36
+ "2010-09-01,DEB,222222,88888888,BARLEY MOW,0.00,6.60,1566.30"=>
37
+ {:external_account=>:Splurge, :sub_account=>:EatingOut},
38
+ "2010-08-30,DD,222222,88888888,PAYPAL PAYMENT,0.00,11.91,1572.90"=>
39
+ {:external_account=>:Splurge, :sub_account=>:Computers},
40
+ "2010-08-30,FPO,222222,88888888,MY EMPLOYER,1000.00,0.00,1560.99"=>
41
+ {:external_account=>:Income, :sub_account=>:Salary},
42
+ "2010-09-04,DEB,000000,99999999,MARKS & SPENCER,0.00,35.00,121.33"=>
43
+ {:external_account=>:Splurge, :sub_account=>:Clothes},
44
+ "2010-09-06,CPT,222222,88888888,LNK BIRMINGHAM,0.00,40.00,820.75"=>
45
+ {:external_account=>:Cash, :sub_account=>:Withdrawal2}}
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ {:Cash=>
3
+ {:name=>:Cash,
4
+ :sym=>"1",
5
+ :sub_accounts=>
6
+ {:Withdrawal=>{:name=>:Withdrawal, :sym=>"\e"},
7
+ :Withdrawal2=>{:name=>:Withdrawal2, :sym=>"1"}}},
8
+ :MonthlyExpenses=>
9
+ {:name=>:MonthlyExpenses,
10
+ :sym=>"3",
11
+ :sub_accounts=>{:Insurance=>{:name=>:Insurance, :sym=>"1"},
12
+ :Phone=>{:name=>:Phone, :sym=>"1"}}},
13
+ :DailyExpenses=>
14
+ {:name=>:DailyExpenses,
15
+ :sym=>"4",
16
+ :sub_accounts=>
17
+ {:Food=>{:name=>:Food, :sym=>"1"}, :Rent=>{:name=>:Rent, :sym=>"2"}}},
18
+ :Splurge=>
19
+ {:name=>:Splurge,
20
+ :sym=>"5",
21
+ :sub_accounts=>
22
+ {:Gifts=>{:name=>:Gifts, :sym=>"1"},
23
+ :Computers=>{:name=>:Computers, :sym=>"2"},
24
+ :Books=>{:name=>:Books, :sym=>"3"},
25
+ :EatingOut=>{:name=>:EatingOut, :sym=>"4"},
26
+ :Clothes=>{:name=>:Clothes, :sym=>"5"}}},
27
+ :Income=>
28
+ {:name=>:Income,
29
+ :sym=>"6",
30
+ :sub_accounts=>{:Salary=>{:name=>:Salary, :sym=>"1"}}}}
@@ -23,12 +23,11 @@ rescue Bundler::BundlerError => e
23
23
  $stderr.puts "Run `bundle install` to install missing gems"
24
24
  exit e.status_code
25
25
  end
26
- require 'test/unit'
26
+ require 'minitest'
27
+ require 'minitest/autorun'
27
28
  require 'shoulda'
28
29
 
29
30
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
30
31
  $LOAD_PATH.unshift(File.dirname(__FILE__))
31
32
  require 'treasurer'
32
33
 
33
- class Test::Unit::TestCase
34
- end
@@ -2,7 +2,7 @@ require 'helper'
2
2
  require 'ruby-prof'
3
3
  #require 'ruby-prof/test'
4
4
 
5
- class TestTreaurer < Test::Unit::TestCase
5
+ class TestTreaurer < MiniTest::Test
6
6
  #include RubyProf::Test
7
7
  #PROFILE_OPTIONS[:
8
8
  def testfolder
@@ -12,6 +12,8 @@ class TestTreaurer < Test::Unit::TestCase
12
12
  FileUtils.rm_r(testfolder) if FileTest.exist? testfolder
13
13
  Treasurer.init_root_folder('test/myaccount', {})
14
14
  Dir.chdir('test/myaccount') do
15
+ FileUtils.cp('../external_accounts.rb', '.')
16
+ FileUtils.cp('../account_choices.rb', '.')
15
17
  Treasurer.add_file('../bankaccountstatement.csv', 'FirstBank', {})
16
18
  Treasurer.status
17
19
  Treasurer.add_file('../otheraccountstatement.csv', 'SecondBank', {})
@@ -25,8 +27,8 @@ class TestTreaurer < Test::Unit::TestCase
25
27
  File.open('timing.html', 'w'){|f| printer.print(f, {})}
26
28
  reporter = Treasurer.fetch_reporter(t: Date.parse('2010-09-07'), b: 40, a: 35)
27
29
  reporter.generate_accounts
28
- assert_equal(382.08, reporter.equity.balance.round(2))
29
- assert_equal(724.33, reporter.equity.projected_balance(Date.parse('2010-10-09')).round(2))
30
+ assert_equal(1032.08, reporter.equities.values[0].balance.round(2))
31
+ assert_equal(1825.28, reporter.equities.values[0].projected_balance(Date.parse('2010-10-09')).round(2))
30
32
  end
31
33
  #FileUtils.rm_r(testfolder) if FileTest.exist? testfolder
32
34
  end
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: treasurer 0.9.2 ruby lib
5
+ # stub: treasurer 0.9.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "treasurer".freeze
9
- s.version = "0.9.2"
9
+ s.version = "0.9.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Edmund Highcock".freeze]
14
- s.date = "2018-04-10"
14
+ s.date = "2018-06-30"
15
15
  s.description = "A simple command line tool for managing accounts and finances. Easily import internet banking spreadsheets and generate sophisticated reports and projections.".freeze
16
16
  s.email = "edmundhighcock@users.sourceforge.net".freeze
17
17
  s.executables = ["treasurer".freeze]
@@ -33,7 +33,9 @@ Gem::Specification.new do |s|
33
33
  "lib/treasurer/commands.rb",
34
34
  "lib/treasurer/local_customisations.rb",
35
35
  "lib/treasurer/report.rb",
36
+ "test/account_choices.rb",
36
37
  "test/bankaccountstatement.csv",
38
+ "test/external_accounts.rb",
37
39
  "test/helper.rb",
38
40
  "test/multiple/FirstBank.csv",
39
41
  "test/multiple/SecondBank.csv",
@@ -52,7 +54,7 @@ Gem::Specification.new do |s|
52
54
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
55
  s.add_runtime_dependency(%q<activesupport>.freeze, [">= 5.0.0"])
54
56
  s.add_runtime_dependency(%q<coderunner>.freeze, [">= 0.14.16"])
55
- s.add_runtime_dependency(%q<budgetcrmod>.freeze, ["~> 0.3"])
57
+ s.add_runtime_dependency(%q<budgetcrmod>.freeze, ["~> 0.4"])
56
58
  s.add_runtime_dependency(%q<command-line-flunky>.freeze, [">= 1.0.0"])
57
59
  s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
58
60
  s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
@@ -63,7 +65,7 @@ Gem::Specification.new do |s|
63
65
  else
64
66
  s.add_dependency(%q<activesupport>.freeze, [">= 5.0.0"])
65
67
  s.add_dependency(%q<coderunner>.freeze, [">= 0.14.16"])
66
- s.add_dependency(%q<budgetcrmod>.freeze, ["~> 0.3"])
68
+ s.add_dependency(%q<budgetcrmod>.freeze, ["~> 0.4"])
67
69
  s.add_dependency(%q<command-line-flunky>.freeze, [">= 1.0.0"])
68
70
  s.add_dependency(%q<shoulda>.freeze, [">= 0"])
69
71
  s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
@@ -75,7 +77,7 @@ Gem::Specification.new do |s|
75
77
  else
76
78
  s.add_dependency(%q<activesupport>.freeze, [">= 5.0.0"])
77
79
  s.add_dependency(%q<coderunner>.freeze, [">= 0.14.16"])
78
- s.add_dependency(%q<budgetcrmod>.freeze, ["~> 0.3"])
80
+ s.add_dependency(%q<budgetcrmod>.freeze, ["~> 0.4"])
79
81
  s.add_dependency(%q<command-line-flunky>.freeze, [">= 1.0.0"])
80
82
  s.add_dependency(%q<shoulda>.freeze, [">= 0"])
81
83
  s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treasurer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edmund Highcock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-10 00:00:00.000000000 Z
11
+ date: 2018-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.3'
47
+ version: '0.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.3'
54
+ version: '0.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: command-line-flunky
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -173,7 +173,9 @@ files:
173
173
  - lib/treasurer/commands.rb
174
174
  - lib/treasurer/local_customisations.rb
175
175
  - lib/treasurer/report.rb
176
+ - test/account_choices.rb
176
177
  - test/bankaccountstatement.csv
178
+ - test/external_accounts.rb
177
179
  - test/helper.rb
178
180
  - test/multiple/FirstBank.csv
179
181
  - test/multiple/SecondBank.csv