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 +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
|