treasurer 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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