cmxl 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -2
  3. data/CHANGELOG.mdown +28 -18
  4. data/README.md +45 -26
  5. data/cmxl.gemspec +15 -16
  6. data/lib/cmxl.rb +9 -9
  7. data/lib/cmxl/field.rb +25 -18
  8. data/lib/cmxl/fields/account_balance.rb +7 -7
  9. data/lib/cmxl/fields/account_identification.rb +1 -1
  10. data/lib/cmxl/fields/floor_limit_indicator.rb +20 -0
  11. data/lib/cmxl/fields/reference.rb +3 -4
  12. data/lib/cmxl/fields/statement_details.rb +13 -13
  13. data/lib/cmxl/fields/transaction.rb +10 -1
  14. data/lib/cmxl/fields/transaction_supplementary.rb +11 -8
  15. data/lib/cmxl/fields/vmk_summary.rb +33 -0
  16. data/lib/cmxl/statement.rb +52 -22
  17. data/lib/cmxl/version.rb +1 -1
  18. data/spec/field_spec.rb +8 -9
  19. data/spec/fields/account_balance_spec.rb +18 -18
  20. data/spec/fields/account_identification_spec.rb +2 -6
  21. data/spec/fields/available_balance_spec.rb +1 -3
  22. data/spec/fields/closing_balance_spec.rb +2 -4
  23. data/spec/fields/entry_date_spec.rb +1 -1
  24. data/spec/fields/floor_limit_indicator_spec.rb +30 -0
  25. data/spec/fields/reference_spec.rb +2 -3
  26. data/spec/fields/statement_details_spec.rb +61 -56
  27. data/spec/fields/statement_number_spec.rb +0 -2
  28. data/spec/fields/transaction_spec.rb +4 -4
  29. data/spec/fields/transaction_supplementary_spec.rb +4 -4
  30. data/spec/fields/unknown_spec.rb +1 -2
  31. data/spec/fields/vmk_summary_spec.rb +23 -0
  32. data/spec/fixtures/lines/floor_limit_indicator_both.txt +1 -0
  33. data/spec/fixtures/lines/floor_limit_indicator_credit.txt +1 -0
  34. data/spec/fixtures/lines/floor_limit_indicator_debit.txt +1 -0
  35. data/spec/fixtures/lines/vmk_summary_credit.txt +1 -0
  36. data/spec/fixtures/lines/vmk_summary_debit.txt +1 -0
  37. data/spec/fixtures/mt942.txt +9 -0
  38. data/spec/fixtures/statement-details-mt942.txt +4 -0
  39. data/spec/mt940_parsing_spec.rb +13 -14
  40. data/spec/spec_helper.rb +3 -6
  41. data/spec/statement_spec.rb +119 -99
  42. data/spec/support/fixtures.rb +1 -1
  43. metadata +39 -20
@@ -0,0 +1 @@
1
+ :90C:2EUR47,11
@@ -0,0 +1 @@
1
+ :90D:3EUR13,37
@@ -0,0 +1,9 @@
1
+ :20:131110
2
+ :25:45050050/76198810
3
+ :28C:13/37
4
+ :34F:EURD12345,67
5
+ :13D:1901091733+0100
6
+ :61:190109C9792,00FTRFNONREF
7
+ :86:008?00DAUERAUFTRAG?100599?20Miete Dezember?3010020030?31234567?32MUELLER?34339
8
+ :90D:0EUR0,00
9
+ :90C:1EUR9792,00
@@ -0,0 +1,4 @@
1
+ :34F:EURC12345,67
2
+ :34F:EURD12345,67
3
+ :61:1409010902DR000000000001,62NTRF0000549855700010//025498557/000001
4
+ :86:171?00SEPA LASTSCHRIFT KUNDE?10281?20KREF+EREF+TRX-0A4A47C3-F846-4729?21-8A1B-5DF620F?22MREF+CAC97D2144174318AC18D9?23BF815BD4FB?24CRED+DE98ZZZ09999999999?25SVWZ+FOO TRX-0A4A47C3-F84?266-4729-8A1B-5DF620F?30HYVEDEMMXXX?31HUkkbbbsssskcccccccccccccccx?32Peter Pan?99?34171
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  require 'spec_helper'
3
2
 
4
3
  describe 'parsing a statement' do
@@ -6,8 +5,8 @@ describe 'parsing a statement' do
6
5
  subject { Cmxl.parse(mt940_file('mt940-iso8859-1'))[0] }
7
6
 
8
7
  it { expect(subject.reference).to eql('1234567') }
9
- it { expect(subject.opening_balance.amount_in_cents).to eql(218795) }
10
- it { expect(subject.closing_balance.amount_in_cents).to eql(438795) }
8
+ it { expect(subject.opening_balance.amount_in_cents).to eql(218_795) }
9
+ it { expect(subject.closing_balance.amount_in_cents).to eql(438_795) }
11
10
  it { expect(subject.transactions.last.description).to eql('ÜBERWEISUNG') }
12
11
  it { expect(subject.transactions.last.information).to eql('Gehalt OktoberFirmaMüstermannGmbH') }
13
12
  it { expect(subject.transactions.last.name).to eql('MÜLLER') }
@@ -15,11 +14,11 @@ describe 'parsing a statement' do
15
14
  end
16
15
 
17
16
  context 'first example' do
18
- subject { Cmxl.parse(mt940_file(), :encoding => 'ISO-8859-1', :universal_newline => true)[0] }
17
+ subject { Cmxl.parse(mt940_file, encoding: 'ISO-8859-1', universal_newline: true)[0] }
19
18
 
20
19
  it { expect(subject.reference).to eql('131110') }
21
- it { expect(subject.opening_balance.amount_in_cents).to eql(8434974) }
22
- it { expect(subject.closing_balance.amount_in_cents).to eql(8443704) }
20
+ it { expect(subject.opening_balance.amount_in_cents).to eql(8_434_974) }
21
+ it { expect(subject.closing_balance.amount_in_cents).to eql(8_443_704) }
23
22
  it { expect(subject.generation_date).to eql(Date.new(2013, 11, 10)) }
24
23
  it { expect(subject.transactions.count).to eql(11) }
25
24
  it { expect(subject.transactions.first.description).to eql('PN5477SCHECK-NR. 0000016703074') }
@@ -29,13 +28,13 @@ describe 'parsing a statement' do
29
28
  end
30
29
 
31
30
  context 'second example' do
32
- subject { Cmxl.parse(mt940_file(), :encoding => 'ISO-8859-1', :universal_newline => true)[1] }
31
+ subject { Cmxl.parse(mt940_file, encoding: 'ISO-8859-1', universal_newline: true)[1] }
33
32
 
34
33
  it { expect(subject.reference).to eql('1234567') }
35
- it { expect(subject.opening_balance.amount_in_cents).to eql(218795) }
36
- it { expect(subject.closing_balance.amount_in_cents).to eql(438795) }
34
+ it { expect(subject.opening_balance.amount_in_cents).to eql(218_795) }
35
+ it { expect(subject.closing_balance.amount_in_cents).to eql(438_795) }
37
36
  it { expect(subject.generation_date).to eql('123456') }
38
- it { expect(subject.reference).to eql("1234567") }
37
+ it { expect(subject.reference).to eql('1234567') }
39
38
  it { expect(subject.transactions.count).to eql(2) }
40
39
  it { expect(subject.transactions.first.description).to eql('DAUERAUFTRAG') }
41
40
  it { expect(subject.transactions.first.information).to eql('Miete November') }
@@ -45,12 +44,12 @@ describe 'parsing a statement' do
45
44
  end
46
45
 
47
46
  context 'third example' do
48
- subject { Cmxl.parse(mt940_file(), :encoding => 'ISO-8859-1', :universal_newline => true)[2] }
47
+ subject { Cmxl.parse(mt940_file, encoding: 'ISO-8859-1', universal_newline: true)[2] }
49
48
 
50
49
  it { expect(subject.reference).to eql('TELEWIZORY S.A.') }
51
- it { expect(subject.opening_balance.amount_in_cents).to eql(4000000) }
52
- it { expect(subject.closing_balance.amount_in_cents).to eql(5004000) }
53
- it { expect(subject.reference).to eql("TELEWIZORY S.A.") }
50
+ it { expect(subject.opening_balance.amount_in_cents).to eql(4_000_000) }
51
+ it { expect(subject.closing_balance.amount_in_cents).to eql(5_004_000) }
52
+ it { expect(subject.reference).to eql('TELEWIZORY S.A.') }
54
53
  it { expect(subject.transactions.count).to eql(3) }
55
54
  it { expect(subject.transactions.first.description).to eql('Wyplata-(dysp/przel)') }
56
55
  it { expect(subject.transactions.first.information).to eql('0810600076000077777777777715617INFO INFO INFO INFO INFO INFO 1 ENDINFO INFO INFO INFO INFOINFO 2 ENDZAPLATA ZA FABRYKATY DO TUB - 200 S ZTUK, TRANZYSTORY-300 SZT GR544 I OPORNIKI-500 SZT GTX847 FAKTURA 333/2003.') }
@@ -6,17 +6,14 @@ SimpleCov.start
6
6
 
7
7
  require 'cmxl'
8
8
 
9
-
10
- puts File.join(File.dirname(__FILE__), "support/**/*.rb").to_s
11
- Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each {|f| require f}
9
+ puts File.join(File.dirname(__FILE__), 'support/**/*.rb').to_s
10
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
12
11
 
13
12
  RSpec.configure do |config|
14
13
  config.filter_run :focus
15
14
  config.run_all_when_everything_filtered = true
16
15
 
17
- if config.files_to_run.one?
18
- config.default_formatter = 'doc'
19
- end
16
+ config.default_formatter = 'doc' if config.files_to_run.one?
20
17
 
21
18
  config.profile_examples = 3
22
19
 
@@ -1,118 +1,138 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Cmxl do
4
+ context 'mt940' do
5
+ context 'with details' do
6
+ subject { Cmxl.parse(mt940_file('statement-details-mt940')).first.transactions.first }
4
7
 
5
- context 'with details' do
6
- subject { Cmxl.parse( mt940_file('statement-details-mt940') ).first.transactions.first }
7
-
8
- it { expect(subject).to be_debit }
9
- it { expect(subject).to_not be_credit }
10
- it { expect(subject.funds_code).to eql('D') }
11
- it { expect(subject.date).to eql(Date.new(2014,9,1)) }
12
- it { expect(subject.entry_date).to eql(Date.new(2014,9,2)) }
13
- it { expect(subject.amount).to eql(1.62) }
14
- it { expect(subject.amount_in_cents).to eql(162) }
15
- it { expect(subject.to_h).to eql(
16
- {
17
- "date" => Date.new(2014,9,1),
18
- "sha" => "3c5e65aa3d3878b06b58b6f1ae2f3693004dfb04e3ab7119a1c1244e612293da",
19
- "entry_date" => Date.new(2014,9,2),
20
- "funds_code" => "D",
21
- "currency_letter" => "R",
22
- "amount" => 1.62,
23
- "swift_code" => "NTRF",
24
- "reference" => "0000549855700010",
25
- "bank_reference" => "025498557/000001",
26
- "amount_in_cents" => 162,
27
- "sign" => -1,
28
- "debit" => true,
29
- "credit" => false,
30
- "storno" => false,
31
- "bic" => "HYVEDEMMXXX",
32
- "iban" => "HUkkbbbsssskcccccccccccccccx",
33
- "name" => "Peter Pan",
34
- "sepa" => {
35
- "KREF" => "",
36
- "EREF" => "TRX-0A4A47C3-F846-4729-8A1B-5DF620F",
37
- "MREF" => "CAC97D2144174318AC18D9BF815BD4FB",
38
- "CRED" => "DE98ZZZ09999999999",
39
- "SVWZ" => "FOO TRX-0A4A47C3-F846-4729-8A1B-5DF620F"
40
- },
41
- "information" => "KREF+EREF+TRX-0A4A47C3-F846-4729-8A1B-5DF620FMREF+CAC97D2144174318AC18D9BF815BD4FBCRED+DE98ZZZ09999999999SVWZ+FOO TRX-0A4A47C3-F846-4729-8A1B-5DF620F",
42
- "description" => "SEPA LASTSCHRIFT KUNDE",
43
- "sub_fields" => {
44
- "00" => "SEPA LASTSCHRIFT KUNDE",
45
- "10" => "281",
46
- "20" => "KREF+EREF+TRX-0A4A47C3-F846-4729",
47
- "21" => "-8A1B-5DF620F",
48
- "22" => "MREF+CAC97D2144174318AC18D9",
49
- "23" => "BF815BD4FB",
50
- "24" => "CRED+DE98ZZZ09999999999",
51
- "25" => "SVWZ+FOO TRX-0A4A47C3-F84",
52
- "26" => "6-4729-8A1B-5DF620F",
53
- "30" => "HYVEDEMMXXX",
54
- "31" => "HUkkbbbsssskcccccccccccccccx",
55
- "32" => "Peter Pan",
56
- "99" => "",
57
- "34" => "171"
58
- },
59
- "transaction_code" => "171",
60
- "details" => "?00SEPA LASTSCHRIFT KUNDE?10281?20KREF+EREF+TRX-0A4A47C3-F846-4729?21-8A1B-5DF620F?22MREF+CAC97D2144174318AC18D9?23BF815BD4FB?24CRED+DE98ZZZ09999999999?25SVWZ+FOO TRX-0A4A47C3-F84?266-4729-8A1B-5DF620F?30HYVEDEMMXXX?31HUkkbbbsssskcccccccccccccccx?32Peter Pan?99?34171",
61
- }
62
- )
63
- }
64
- end
8
+ it { expect(subject.mt942?).to be_falsey }
9
+ it { expect(subject).to be_debit }
10
+ it { expect(subject).to_not be_credit }
11
+ it { expect(subject.funds_code).to eql('D') }
12
+ it { expect(subject.date).to eql(Date.new(2014, 9, 1)) }
13
+ it { expect(subject.entry_date).to eql(Date.new(2014, 9, 2)) }
14
+ it { expect(subject.amount).to eql(1.62) }
15
+ it { expect(subject.amount_in_cents).to eql(162) }
16
+ it {
17
+ expect(subject.to_h).to eql(
18
+ 'date' => Date.new(2014, 9, 1),
19
+ 'sha' => '3c5e65aa3d3878b06b58b6f1ae2f3693004dfb04e3ab7119a1c1244e612293da',
20
+ 'entry_date' => Date.new(2014, 9, 2),
21
+ 'funds_code' => 'D',
22
+ 'currency_letter' => 'R',
23
+ 'amount' => 1.62,
24
+ 'swift_code' => 'NTRF',
25
+ 'reference' => '0000549855700010',
26
+ 'bank_reference' => '025498557/000001',
27
+ 'amount_in_cents' => 162,
28
+ 'sign' => -1,
29
+ 'debit' => true,
30
+ 'credit' => false,
31
+ 'storno' => false,
32
+ 'bic' => 'HYVEDEMMXXX',
33
+ 'iban' => 'HUkkbbbsssskcccccccccccccccx',
34
+ 'name' => 'Peter Pan',
35
+ 'sepa' => {
36
+ 'KREF' => '',
37
+ 'EREF' => 'TRX-0A4A47C3-F846-4729-8A1B-5DF620F',
38
+ 'MREF' => 'CAC97D2144174318AC18D9BF815BD4FB',
39
+ 'CRED' => 'DE98ZZZ09999999999',
40
+ 'SVWZ' => 'FOO TRX-0A4A47C3-F846-4729-8A1B-5DF620F'
41
+ },
42
+ 'information' => 'KREF+EREF+TRX-0A4A47C3-F846-4729-8A1B-5DF620FMREF+CAC97D2144174318AC18D9BF815BD4FBCRED+DE98ZZZ09999999999SVWZ+FOO TRX-0A4A47C3-F846-4729-8A1B-5DF620F',
43
+ 'description' => 'SEPA LASTSCHRIFT KUNDE',
44
+ 'sub_fields' => {
45
+ '00' => 'SEPA LASTSCHRIFT KUNDE',
46
+ '10' => '281',
47
+ '20' => 'KREF+EREF+TRX-0A4A47C3-F846-4729',
48
+ '21' => '-8A1B-5DF620F',
49
+ '22' => 'MREF+CAC97D2144174318AC18D9',
50
+ '23' => 'BF815BD4FB',
51
+ '24' => 'CRED+DE98ZZZ09999999999',
52
+ '25' => 'SVWZ+FOO TRX-0A4A47C3-F84',
53
+ '26' => '6-4729-8A1B-5DF620F',
54
+ '30' => 'HYVEDEMMXXX',
55
+ '31' => 'HUkkbbbsssskcccccccccccccccx',
56
+ '32' => 'Peter Pan',
57
+ '99' => '',
58
+ '34' => '171'
59
+ },
60
+ 'transaction_code' => '171',
61
+ 'details' => '?00SEPA LASTSCHRIFT KUNDE?10281?20KREF+EREF+TRX-0A4A47C3-F846-4729?21-8A1B-5DF620F?22MREF+CAC97D2144174318AC18D9?23BF815BD4FB?24CRED+DE98ZZZ09999999999?25SVWZ+FOO TRX-0A4A47C3-F84?266-4729-8A1B-5DF620F?30HYVEDEMMXXX?31HUkkbbbsssskcccccccccccccccx?32Peter Pan?99?34171'
62
+ )
63
+ }
64
+ end
65
65
 
66
- context 'without details' do
67
- subject { Cmxl.parse( mt940_file('statement-mt940') ).first.transactions.first }
66
+ context 'without details' do
67
+ subject { Cmxl.parse(mt940_file('statement-mt940')).first.transactions.first }
68
68
 
69
- it { expect(subject).to be_debit }
70
- it { expect(subject).to_not be_credit }
71
- it { expect(subject.date).to eql(Date.new(2014,9,1))}
72
- it { expect(subject.entry_date).to eql(Date.new(2014,9,2)) }
73
- it { expect(subject.amount).to eql(1.62) }
74
- it { expect(subject.amount_in_cents).to eql(162) }
75
- it 'does not include any details in its hash representation' do
76
- expect(subject.to_h).to eql({
77
- "date" => Date.new(2014,9,1),
78
- "sha" => "3c5e65aa3d3878b06b58b6f1ae2f3693004dfb04e3ab7119a1c1244e612293da",
79
- "entry_date"=>Date.new(2014,9,2),
80
- "funds_code" => "D",
81
- "currency_letter" => "R",
82
- "amount" => 1.62,
83
- "swift_code" => "NTRF",
84
- "reference" => "0000549855700010",
85
- "bank_reference" => "025498557/000001",
86
- "amount_in_cents" => 162,
87
- "sign" => -1,
88
- "debit" => true,
89
- "credit" => false,
90
- "storno" => false,
91
- })
69
+ it { expect(subject.mt942?).to be_falsey }
70
+ it { expect(subject).to be_debit }
71
+ it { expect(subject).to_not be_credit }
72
+ it { expect(subject.date).to eql(Date.new(2014, 9, 1)) }
73
+ it { expect(subject.entry_date).to eql(Date.new(2014, 9, 2)) }
74
+ it { expect(subject.amount).to eql(1.62) }
75
+ it { expect(subject.amount_in_cents).to eql(162) }
76
+ it 'does not include any details in its hash representation' do
77
+ expect(subject.to_h).to eql(
78
+ 'date' => Date.new(2014, 9, 1),
79
+ 'sha' => '3c5e65aa3d3878b06b58b6f1ae2f3693004dfb04e3ab7119a1c1244e612293da',
80
+ 'entry_date' => Date.new(2014, 9, 2),
81
+ 'funds_code' => 'D',
82
+ 'currency_letter' => 'R',
83
+ 'amount' => 1.62,
84
+ 'swift_code' => 'NTRF',
85
+ 'reference' => '0000549855700010',
86
+ 'bank_reference' => '025498557/000001',
87
+ 'amount_in_cents' => 162,
88
+ 'sign' => -1,
89
+ 'debit' => true,
90
+ 'credit' => false,
91
+ 'storno' => false
92
+ )
93
+ end
92
94
  end
93
- end
94
95
 
95
- describe 'statement issued over a years boudary' do
96
- subject { Cmxl.parse( mt940_file('statement-mt940') ).first.transactions.last }
96
+ describe 'statement issued over a years boudary' do
97
+ subject { Cmxl.parse(mt940_file('statement-mt940')).first.transactions.last }
98
+
99
+ it { expect(subject.mt942?).to be_falsey }
100
+
101
+ it 'includes correct entry date' do
102
+ expect(subject.entry_date).to eq(Date.new(2013, 12, 29))
103
+ end
97
104
 
98
- it 'includes correct entry date' do
99
- expect(subject.entry_date).to eq(Date.new(2013,12,29))
105
+ it 'includes correct date' do
106
+ expect(subject.date).to eq(Date.new(2014, 0o1, 0o4))
107
+ end
100
108
  end
101
109
 
102
- it 'includes correct date' do
103
- expect(subject.date).to eq(Date.new(2014,01,04))
110
+ describe 'statement with detailed end balance' do
111
+ subject { Cmxl.parse(mt940_file('mt940-with-detailed-end-balance')).first.transactions.first }
112
+
113
+ it { expect(subject.mt942?).to be_falsey }
114
+
115
+ it 'includes correct iban' do
116
+ expect(subject.iban).to eq('234567')
117
+ end
118
+
119
+ it 'includes correct bic' do
120
+ expect(subject.bic).to eq('10020030')
121
+ end
104
122
  end
105
123
  end
106
124
 
107
- describe 'statement with detailed end balance' do
108
- subject { Cmxl.parse( mt940_file('mt940-with-detailed-end-balance') ).first.transactions.first }
125
+ context 'mt942' do
126
+ subject(:statement) { Cmxl.parse(mt940_file('mt942')).first }
109
127
 
110
- it 'includes correct iban' do
111
- expect(subject.iban).to eq('234567')
112
- end
128
+ it { expect(statement.mt942?).to be_truthy }
129
+ it { expect(statement.vmk_credit_summary.amount).to eql(9792.00) }
130
+ it { expect(statement.vmk_credit_summary.currency).to eql('EUR') }
131
+ it { expect(statement.vmk_debit_summary.amount).to eql(0.00) }
132
+ it { expect(statement.vmk_debit_summary.currency).to eql('EUR') }
113
133
 
114
- it 'includes correct bic' do
115
- expect(subject.bic).to eq('10020030')
134
+ it 'includes correct iban' do
135
+ expect(subject.transactions.first.iban).to eq('234567')
116
136
  end
117
137
  end
118
138
  end
@@ -2,6 +2,6 @@ def fixture_line(name)
2
2
  File.read(File.join(File.dirname(__FILE__), '../fixtures/lines', "#{name}.txt"))
3
3
  end
4
4
 
5
- def mt940_file(name='mt940')
5
+ def mt940_file(name = 'mt940')
6
6
  File.read(File.join(File.dirname(__FILE__), '../fixtures', "#{name}.txt"))
7
7
  end
metadata CHANGED
@@ -1,31 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cmxl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bumann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-08 00:00:00.000000000 Z
11
+ date: 2019-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.5'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.5'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,35 +39,35 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
48
48
  type: :development
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: '3.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: simplecov
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: pry
70
+ name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -118,11 +118,13 @@ files:
118
118
  - lib/cmxl/fields/available_balance.rb
119
119
  - lib/cmxl/fields/closing_balance.rb
120
120
  - lib/cmxl/fields/entry_date.rb
121
+ - lib/cmxl/fields/floor_limit_indicator.rb
121
122
  - lib/cmxl/fields/reference.rb
122
123
  - lib/cmxl/fields/statement_details.rb
123
124
  - lib/cmxl/fields/statement_number.rb
124
125
  - lib/cmxl/fields/transaction.rb
125
126
  - lib/cmxl/fields/transaction_supplementary.rb
127
+ - lib/cmxl/fields/vmk_summary.rb
126
128
  - lib/cmxl/statement.rb
127
129
  - lib/cmxl/version.rb
128
130
  - spec/field_spec.rb
@@ -131,12 +133,14 @@ files:
131
133
  - spec/fields/available_balance_spec.rb
132
134
  - spec/fields/closing_balance_spec.rb
133
135
  - spec/fields/entry_date_spec.rb
136
+ - spec/fields/floor_limit_indicator_spec.rb
134
137
  - spec/fields/reference_spec.rb
135
138
  - spec/fields/statement_details_spec.rb
136
139
  - spec/fields/statement_number_spec.rb
137
140
  - spec/fields/transaction_spec.rb
138
141
  - spec/fields/transaction_supplementary_spec.rb
139
142
  - spec/fields/unknown_spec.rb
143
+ - spec/fields/vmk_summary_spec.rb
140
144
  - spec/fixtures/lines/account_balance_credit.txt
141
145
  - spec/fixtures/lines/account_balance_debit.txt
142
146
  - spec/fixtures/lines/account_identification_iban.txt
@@ -144,6 +148,9 @@ files:
144
148
  - spec/fixtures/lines/available_balance.txt
145
149
  - spec/fixtures/lines/closing_balance.txt
146
150
  - spec/fixtures/lines/entry_date.txt
151
+ - spec/fixtures/lines/floor_limit_indicator_both.txt
152
+ - spec/fixtures/lines/floor_limit_indicator_credit.txt
153
+ - spec/fixtures/lines/floor_limit_indicator_debit.txt
147
154
  - spec/fixtures/lines/reference.txt
148
155
  - spec/fixtures/lines/statement_details.txt
149
156
  - spec/fixtures/lines/statement_details_empty_fields.txt
@@ -153,12 +160,16 @@ files:
153
160
  - spec/fixtures/lines/statement_ocmt_chgs.txt
154
161
  - spec/fixtures/lines/statement_supplementary_complex.txt
155
162
  - spec/fixtures/lines/statement_supplementary_plain.txt
163
+ - spec/fixtures/lines/vmk_summary_credit.txt
164
+ - spec/fixtures/lines/vmk_summary_debit.txt
156
165
  - spec/fixtures/mt940-deutsche_bank.txt
157
166
  - spec/fixtures/mt940-headers.txt
158
167
  - spec/fixtures/mt940-iso8859-1.txt
159
168
  - spec/fixtures/mt940-with-detailed-end-balance.txt
160
169
  - spec/fixtures/mt940.txt
170
+ - spec/fixtures/mt942.txt
161
171
  - spec/fixtures/statement-details-mt940.txt
172
+ - spec/fixtures/statement-details-mt942.txt
162
173
  - spec/fixtures/statement-mt940.txt
163
174
  - spec/mt940_parsing_spec.rb
164
175
  - spec/spec_helper.rb
@@ -185,8 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
196
  - !ruby/object:Gem::Version
186
197
  version: '0'
187
198
  requirements: []
188
- rubyforge_project:
189
- rubygems_version: 2.7.6
199
+ rubygems_version: 3.0.1
190
200
  signing_key:
191
201
  specification_version: 4
192
202
  summary: Cmxl is your friendly MT940 bank statement parser
@@ -197,12 +207,14 @@ test_files:
197
207
  - spec/fields/available_balance_spec.rb
198
208
  - spec/fields/closing_balance_spec.rb
199
209
  - spec/fields/entry_date_spec.rb
210
+ - spec/fields/floor_limit_indicator_spec.rb
200
211
  - spec/fields/reference_spec.rb
201
212
  - spec/fields/statement_details_spec.rb
202
213
  - spec/fields/statement_number_spec.rb
203
214
  - spec/fields/transaction_spec.rb
204
215
  - spec/fields/transaction_supplementary_spec.rb
205
216
  - spec/fields/unknown_spec.rb
217
+ - spec/fields/vmk_summary_spec.rb
206
218
  - spec/fixtures/lines/account_balance_credit.txt
207
219
  - spec/fixtures/lines/account_balance_debit.txt
208
220
  - spec/fixtures/lines/account_identification_iban.txt
@@ -210,6 +222,9 @@ test_files:
210
222
  - spec/fixtures/lines/available_balance.txt
211
223
  - spec/fixtures/lines/closing_balance.txt
212
224
  - spec/fixtures/lines/entry_date.txt
225
+ - spec/fixtures/lines/floor_limit_indicator_both.txt
226
+ - spec/fixtures/lines/floor_limit_indicator_credit.txt
227
+ - spec/fixtures/lines/floor_limit_indicator_debit.txt
213
228
  - spec/fixtures/lines/reference.txt
214
229
  - spec/fixtures/lines/statement_details.txt
215
230
  - spec/fixtures/lines/statement_details_empty_fields.txt
@@ -219,12 +234,16 @@ test_files:
219
234
  - spec/fixtures/lines/statement_ocmt_chgs.txt
220
235
  - spec/fixtures/lines/statement_supplementary_complex.txt
221
236
  - spec/fixtures/lines/statement_supplementary_plain.txt
237
+ - spec/fixtures/lines/vmk_summary_credit.txt
238
+ - spec/fixtures/lines/vmk_summary_debit.txt
222
239
  - spec/fixtures/mt940-deutsche_bank.txt
223
240
  - spec/fixtures/mt940-headers.txt
224
241
  - spec/fixtures/mt940-iso8859-1.txt
225
242
  - spec/fixtures/mt940-with-detailed-end-balance.txt
226
243
  - spec/fixtures/mt940.txt
244
+ - spec/fixtures/mt942.txt
227
245
  - spec/fixtures/statement-details-mt940.txt
246
+ - spec/fixtures/statement-details-mt942.txt
228
247
  - spec/fixtures/statement-mt940.txt
229
248
  - spec/mt940_parsing_spec.rb
230
249
  - spec/spec_helper.rb