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 +4 -4
- data/Gemfile +1 -1
- data/VERSION +1 -1
- data/lib/treasurer.rb +2 -2
- data/lib/treasurer/accounts.rb +11 -5
- data/lib/treasurer/analysis.rb +1 -0
- data/lib/treasurer/commands.rb +1 -1
- data/lib/treasurer/local_customisations.rb +10 -49
- data/lib/treasurer/report.rb +32 -5
- data/test/account_choices.rb +45 -0
- data/test/external_accounts.rb +30 -0
- data/test/helper.rb +2 -3
- data/test/test_treasurer.rb +5 -3
- data/treasurer.gemspec +8 -6
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a55d811fa5407a680b22be526598e6398fd1a55e
|
4
|
+
data.tar.gz: 64be91516a253dade32ae4391d8fee7c5a183cdc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7dee8f5e8d9a5ef0a8b572458f2662c27ddcf75b63b86651d160afdf71fac29e7e896cfeef7eb9b788c77c1412530734c0f4b726c16a9759f907c1f65faf6b3b
|
7
|
+
data.tar.gz: d54382492cabf560c32acd50dc0651386e8d7fd92ab0506a05f651e56911e7724d93a1298ad20cfe0ae422998e1a3f9293daa6e4d6806981b1643c49d702cd71
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.3
|
data/lib/treasurer.rb
CHANGED
@@ -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
|
data/lib/treasurer/accounts.rb
CHANGED
@@ -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[:
|
238
|
-
Hash[@reporter.projected_accounts_info.find_all{|ext_ac,inf|
|
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
|
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
|
data/lib/treasurer/analysis.rb
CHANGED
data/lib/treasurer/commands.rb
CHANGED
@@ -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
|
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
|
-
|
37
|
-
MonthlySecondBank: {linked_account: :SecondBank, period: [1, :month], monthday: 1, start: nil, end: nil, discretionary: false},
|
38
|
-
|
39
|
-
WeeklySecondBank: {linked_account: :SecondBank, period: [7, :day], monthday: nil, start: nil, end: nil, discretionary: true},
|
40
|
-
|
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
|
-
|
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
|
-
|
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
|
data/lib/treasurer/report.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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"}}}}
|
data/test/helper.rb
CHANGED
@@ -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 '
|
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
|
data/test/test_treasurer.rb
CHANGED
@@ -2,7 +2,7 @@ require 'helper'
|
|
2
2
|
require 'ruby-prof'
|
3
3
|
#require 'ruby-prof/test'
|
4
4
|
|
5
|
-
class TestTreaurer < Test
|
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
|
-
|
29
|
-
|
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
|
data/treasurer.gemspec
CHANGED
@@ -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.
|
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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-
|
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.
|
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.
|
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
|