mt940 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -46,3 +46,6 @@ pkg
46
46
 
47
47
  # For rubinius:
48
48
  #*.rbc
49
+
50
+ # rvmrc
51
+ .rvmrc
data/CHANGELOG CHANGED
@@ -1,3 +1,11 @@
1
+ * 0.6.6
2
+ - Added currency support in transaction (contribution of Bob Forma)
3
+
4
+ * 0.6.5
5
+
6
+ - Use bundler for gem building and release
7
+ - Add travis configuration
8
+
1
9
  * 0.6.4
2
10
 
3
11
  - Fix for multiline description for Rabobank
data/README.md CHANGED
@@ -64,5 +64,5 @@ Contributing to MT940
64
64
  Copyright
65
65
  ==========
66
66
 
67
- Copyright (c) 2011 Frank Oxener - Agile Dovadi BV. See LICENSE.txt for further details.
67
+ Copyright (c) 2012 Frank Oxener - Agile Dovadi BV. See LICENSE.txt for further details.
68
68
 
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
-
2
+ require 'rubygems'
3
3
  require 'bundler/gem_helper'
4
4
  Bundler::GemHelper.install_tasks
5
5
 
@@ -7,7 +7,7 @@ class MT940::Abnamro < MT940::Base
7
7
  def parse_tag_61
8
8
  if @line.match(/^:61:(\d{6})\d{4}(C|D)(\d+),(\d{0,2})/)
9
9
  type = $2 == 'D' ? -1 : 1
10
- @transaction = MT940::Transaction.new(:bank_account => @bank_account, :amount => type * ($3 + '.' + $4).to_f, :bank => @bank)
10
+ @transaction = MT940::Transaction.new(:bank_account => @bank_account, :amount => type * ($3 + '.' + $4).to_f, :bank => @bank, :currency => @currency)
11
11
  @transaction.date = parse_date($1)
12
12
  @transactions << @transaction
13
13
  @tag86 = false
@@ -7,7 +7,7 @@ class MT940::Rabobank < MT940::Base
7
7
  def parse_tag_61
8
8
  if @line.match(/^:61:(\d{6})(C|D)(\d+),(\d{0,2})\w{4}\w{1}(\d{9}|NONREF)(.+)$/)
9
9
  type = $2 == 'D' ? -1 : 1
10
- @transaction = MT940::Transaction.new(:bank_account => @bank_account, :amount => type * ($3 + '.' + $4).to_f, :bank => @bank)
10
+ @transaction = MT940::Transaction.new(:bank_account => @bank_account, :amount => type * ($3 + '.' + $4).to_f, :bank => @bank, :currency => @currency)
11
11
  @transaction.date = parse_date($1)
12
12
  @transaction.contra_account = $5.strip
13
13
  @transaction.contra_account_owner = $6.strip
data/lib/mt940/base.rb CHANGED
@@ -23,7 +23,7 @@ module MT940
23
23
  @tag86 = false
24
24
  @lines.each do |line|
25
25
  @line = line
26
- @line.match(/^:(\d{2}):/) ? eval('parse_tag_'+ $1) : parse_line
26
+ @line.match(/^:(\d{2}F?):/) ? eval('parse_tag_'+ $1) : parse_line
27
27
  end
28
28
  @transactions
29
29
  end
@@ -56,10 +56,14 @@ module MT940
56
56
  end
57
57
  end
58
58
 
59
+ def parse_tag_60F
60
+ @currency = @line[12..14]
61
+ end
62
+
59
63
  def parse_tag_61
60
64
  if @line.match(/^:61:(\d{6})(C|D)(\d+),(\d{0,2})/)
61
65
  type = $2 == 'D' ? -1 : 1
62
- @transaction = MT940::Transaction.new(:bank_account => @bank_account, :amount => type * ($3 + '.' + $4).to_f, :bank => @bank)
66
+ @transaction = MT940::Transaction.new(:bank_account => @bank_account, :amount => type * ($3 + '.' + $4).to_f, :bank => @bank, :currency => @currency)
63
67
  @transaction.date = parse_date($1)
64
68
  @transactions << @transaction
65
69
  @tag86 = false
@@ -2,7 +2,7 @@ module MT940
2
2
 
3
3
  class Transaction
4
4
 
5
- attr_accessor :bank_account, :contra_account, :amount, :description, :contra_account_owner, :date, :bank
5
+ attr_accessor :bank_account, :contra_account, :amount, :description, :contra_account_owner, :date, :bank, :currency
6
6
 
7
7
  def initialize(attributes = {})
8
8
  @bank_account = attributes[:bank_account]
@@ -12,6 +12,7 @@ module MT940
12
12
  @date = attributes[:date]
13
13
  @contra_account = attributes[:contra_account]
14
14
  @contra_account_name = attributes[:contra_account_owner]
15
+ @currency = attributes[:currency]
15
16
  end
16
17
 
17
18
  end
data/lib/mt940/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MT940
2
- VERSION = '0.6.5'
2
+ VERSION = '0.6.6'
3
3
  end
@@ -27,7 +27,7 @@ class TestMt940Abnamro < Test::Unit::TestCase
27
27
  end
28
28
 
29
29
  should 'have the correct description in case of a regular bank' do
30
- assert_equal 'MYCOM DEN HAAG S-GRAVEN,PAS999 :62F:C110524EUR1849,75', @transactions.last.description
30
+ assert_equal 'MYCOM DEN HAAG S-GRAVEN,PAS999', @transactions.last.description
31
31
  end
32
32
  end
33
33
 
@@ -39,6 +39,10 @@ class TestMt940Abnamro < Test::Unit::TestCase
39
39
  assert_equal 'Abnamro', @transaction.bank
40
40
  end
41
41
 
42
+ should 'have a currency' do
43
+ assert_equal 'EUR', @transaction.currency
44
+ end
45
+
42
46
  context 'Contra account' do
43
47
  should 'be determined in case of a GIRO account' do
44
48
  assert_equal '000428428', @transaction.contra_account
@@ -21,6 +21,10 @@ class TestMt940Ing < Test::Unit::TestCase
21
21
  assert_equal -25.03, @transaction.amount
22
22
  end
23
23
 
24
+ should 'have a currency' do
25
+ assert_equal 'EUR', @transaction.currency
26
+ end
27
+
24
28
  should 'have a date' do
25
29
  assert_equal Date.new(2010,7,22), @transaction.date
26
30
  end
@@ -30,7 +34,7 @@ class TestMt940Ing < Test::Unit::TestCase
30
34
  end
31
35
 
32
36
  should 'have a description' do
33
- assert_equal 'EJ46GREENP100610T1456 CLIEOP TMG GPHONGKONG AMSTERDAM :62F:C100723EUR3,47', @transactions.last.description
37
+ assert_equal 'EJ46GREENP100610T1456 CLIEOP TMG GPHONGKONG AMSTERDAM', @transactions.last.description
34
38
  end
35
39
 
36
40
  should 'return the contra_account' do
@@ -35,6 +35,10 @@ class TestMt940Rabobank < Test::Unit::TestCase
35
35
  assert_equal -1213.28, @transaction.amount
36
36
  end
37
37
 
38
+ should 'have a currency' do
39
+ assert_equal 'EUR', @transaction.currency
40
+ end
41
+
38
42
  should 'have a contra_account_owner' do
39
43
  assert_equal 'W.P. Jansen', @transaction.contra_account_owner
40
44
  end
@@ -21,6 +21,10 @@ class TestMt940Triodos < Test::Unit::TestCase
21
21
  assert_equal -15.7, @transaction.amount
22
22
  end
23
23
 
24
+ should 'have a currency' do
25
+ assert_equal 'EUR', @transaction.currency
26
+ end
27
+
24
28
  should 'have a description' do
25
29
  assert_equal 'ALGEMENE TUSSENREKENING KOSTEN VAN 01-10-2010 TOT EN M ET 31-12-20100390123456', @transaction.description
26
30
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 6
8
- - 5
9
- version: 0.6.5
8
+ - 6
9
+ version: 0.6.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Frank Oxener
@@ -14,21 +14,21 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-01-10 00:00:00 +01:00
17
+ date: 2012-04-25 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
21
+ name: shoulda
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
22
24
  requirements:
23
25
  - - ">="
24
26
  - !ruby/object:Gem::Version
25
27
  segments:
26
28
  - 0
27
29
  version: "0"
28
- requirement: *id001
29
- name: shoulda
30
- prerelease: false
31
30
  type: :development
31
+ version_requirements: *id001
32
32
  description: A basic MT940 parser with implementations for Dutch banks.
33
33
  email: frank.oxener@gmail.com
34
34
  executables: []