cmxl 1.2.0 → 1.3.0

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