total_recall 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'http://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in total_recall.gemspec
4
4
  gemspec
5
+
6
+ gem 'rake'
data/README.md CHANGED
@@ -21,7 +21,7 @@ Develop
21
21
  $ git clone git://github.com/eval/total_recall.git
22
22
  $ cd total_recall
23
23
  $ bundle
24
- $ rake spec
24
+ $ bundle exec rake spec
25
25
 
26
26
  Author
27
27
  ------
@@ -57,6 +57,33 @@ module TotalRecall
57
57
  self.class.options
58
58
  end
59
59
  end # /Abn
60
+
61
+ class AbnCC
62
+ require 'time'
63
+
64
+ # Expected: Hash with:
65
+ #:amount => Float,
66
+ #:currency => String,
67
+ #:description => String,
68
+ #:date => Date
69
+ def parse_row(row)
70
+ amount = row[2].sub(/,/,'.').to_f
71
+ {
72
+ :amount => (row[8] == 'D' ? -amount : amount),
73
+ :date => Date.parse(row[0]),
74
+ :description => row[3],
75
+ :currency => 'EUR'
76
+ }
77
+ end
78
+
79
+ def self.options
80
+ {:col_sep => ",", :headers => true}
81
+ end
82
+
83
+ def options
84
+ self.class.options
85
+ end
86
+ end # /AbnCC
60
87
  end # /ParseStrategy
61
88
 
62
89
  class Ledger < Mustache
@@ -192,7 +219,8 @@ TEMPLATE
192
219
  def self.strategies
193
220
  {
194
221
  'abn' => TotalRecall::ParseStrategy::Abn,
195
- 'ing' => TotalRecall::ParseStrategy::Ing
222
+ 'ing' => TotalRecall::ParseStrategy::Ing,
223
+ 'abncc' => TotalRecall::ParseStrategy::AbnCC
196
224
  }
197
225
  end
198
226
 
@@ -1,3 +1,3 @@
1
1
  module TotalRecall
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,3 @@
1
+ Transactie Datum , Boekingsdatum , In rekening gebracht bedrag , Handelsnaam , Stad , Land , Postcode , Referentienummer , Debet/Credit , SICMCC Code
2
+ 29/12/2011,30/12/2011,100.00,"Handelsnaam I",,,,,D,
3
+ 30/12/2011,31/12/2011,200.00,"Handelsnaam II",,,,,D,
@@ -50,3 +50,8 @@ describe TotalRecall::ParseStrategy::Ing do
50
50
  before{ @fixture = 'ing' }
51
51
  it_behaves_like "a parser"
52
52
  end
53
+
54
+ describe TotalRecall::ParseStrategy::AbnCC do
55
+ before{ @fixture = 'abncc' }
56
+ it_behaves_like "a parser"
57
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: total_recall
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-09 00:00:00.000000000Z
12
+ date: 2012-04-15 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &70281655447440 !ruby/object:Gem::Requirement
16
+ requirement: &70134896727920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.14.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70281655447440
24
+ version_requirements: *70134896727920
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: terminal-table
27
- requirement: &70281655446380 !ruby/object:Gem::Requirement
27
+ requirement: &70134896727220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.4.4
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70281655446380
35
+ version_requirements: *70134896727220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: highline
38
- requirement: &70281655445700 !ruby/object:Gem::Requirement
38
+ requirement: &70134896726600 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70281655445700
46
+ version_requirements: *70134896726600
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bayes_motel
49
- requirement: &70281655444800 !ruby/object:Gem::Requirement
49
+ requirement: &70134896726040 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.1.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70281655444800
57
+ version_requirements: *70134896726040
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mustache
60
- requirement: &70281655444120 !ruby/object:Gem::Requirement
60
+ requirement: &70134896725360 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.99.4
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70281655444120
68
+ version_requirements: *70134896725360
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &70281655443400 !ruby/object:Gem::Requirement
71
+ requirement: &70134896724820 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: 2.7.0
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70281655443400
79
+ version_requirements: *70134896724820
80
80
  description: Turn your bank records csv's into Ledger journals
81
81
  email:
82
82
  - gert@thinkcreate.nl
@@ -96,6 +96,7 @@ files:
96
96
  - lib/total_recall/version.rb
97
97
  - spec/fixtures/.keep
98
98
  - spec/fixtures/abn.csv
99
+ - spec/fixtures/abncc.csv
99
100
  - spec/fixtures/ing.csv
100
101
  - spec/spec.opts
101
102
  - spec/spec_helper.rb
@@ -113,12 +114,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
114
  - - ! '>='
114
115
  - !ruby/object:Gem::Version
115
116
  version: '0'
117
+ segments:
118
+ - 0
119
+ hash: -1362278848564129285
116
120
  required_rubygems_version: !ruby/object:Gem::Requirement
117
121
  none: false
118
122
  requirements:
119
123
  - - ! '>='
120
124
  - !ruby/object:Gem::Version
121
125
  version: '0'
126
+ segments:
127
+ - 0
128
+ hash: -1362278848564129285
122
129
  requirements: []
123
130
  rubyforge_project:
124
131
  rubygems_version: 1.8.10
@@ -128,8 +135,8 @@ summary: Turn your bank records csv's into Ledger journals
128
135
  test_files:
129
136
  - spec/fixtures/.keep
130
137
  - spec/fixtures/abn.csv
138
+ - spec/fixtures/abncc.csv
131
139
  - spec/fixtures/ing.csv
132
140
  - spec/spec.opts
133
141
  - spec/spec_helper.rb
134
142
  - spec/total_recall/bank_parser_spec.rb
135
- has_rdoc: