cfonb 1.1.0 → 1.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 057c580fc124d3731dc852832c8c6f601584bbd235604fd5c44605b4509429c0
4
- data.tar.gz: 037c88124d45e136b909660a8ef7f840a03fa5a7bc06c9e19e592e2eb67080a5
3
+ metadata.gz: '09ba2c778bfad0f2b60f224bd4e13a67b9cb15d3f02062036c0a9ae7ed407b9e'
4
+ data.tar.gz: 13430b0b63638d05fc0127780b767bc746cdd5caaa65a671d017c4339111e63d
5
5
  SHA512:
6
- metadata.gz: b803bf7c0a2c0803e7ae54ea937d3ccb06eeeced3f7dcc033ce202a658137c41da085adf462c2ebcf9d76352cb3990467a45deeaf0a80ad6c86b713a9733248e
7
- data.tar.gz: 02c6b90c2732f5da3b481ec2c9b811b17377d0a7e602780d2048baf86499c3115abe4fcff98cd1cf454a80967565167aa6475fd53cc8442e43c14ddad79d89a4
6
+ metadata.gz: '097f4da9225e785f732dbedcd31e2465c2794a9533dbbaa4dd64d70f11cac80d2e57dbcc9f1346c72d055c351884649ded431b49114b4da4a9156155ac2d2eae'
7
+ data.tar.gz: eb270fd78d5cbbf9c1a05779f876859544687891099ecbf9236e42a7230da8f7b6b2c0ab4831495279e137919adcb8273d9a755b0b68e8d6440c02d5ab846c56
@@ -7,7 +7,7 @@ module CFONB
7
7
  base.singleton_class.prepend(
8
8
  Module.new do
9
9
  def apply(details, line)
10
- code = :"@#{line.detail_code}"
10
+ code = :"@#{line.detail_code.gsub(' ', '_')}"
11
11
  details.instance_variable_set(code, instance_value(details, line, code))
12
12
 
13
13
  super
@@ -7,7 +7,7 @@ module CFONB
7
7
 
8
8
  def self.apply(details, line)
9
9
  details.unknown ||= {}
10
- code = line.detail_code
10
+ code = line.detail_code.gsub(' ', '_')
11
11
 
12
12
  details.unknown[code] =
13
13
  if details.unknown[code] && line.detail.is_a?(String)
@@ -15,7 +15,7 @@ module CFONB
15
15
  end
16
16
 
17
17
  def self.for(line)
18
- return unless line.respond_to?(:detail_code)
18
+ return unless line.respond_to?(:detail_code) && line.detail_code != ''
19
19
 
20
20
  @details[line.detail_code] || Unknown
21
21
  end
@@ -276,8 +276,8 @@ describe CFONB::Operation do
276
276
  context 'with an unknown detail' do
277
277
  let(:detail) do
278
278
  OpenStruct.new(
279
- body: '0530004411001871EUR2 0001016255614090823 AAAEUR200000000000740',
280
- detail_code: 'AAA',
279
+ body: '0530004411001871EUR2 0001016255614090823 A AEUR200000000000740',
280
+ detail_code: 'A A',
281
281
  detail: 'EUR200000000000740',
282
282
  )
283
283
  end
@@ -285,14 +285,25 @@ describe CFONB::Operation do
285
285
  it 'adds the detail to the unknown details hash' do
286
286
  operation.merge_detail(detail)
287
287
 
288
- expect(operation.details.unknown).to eq({ 'AAA' => 'EUR200000000000740' })
288
+ expect(operation.details.unknown).to eq({ 'A_A' => 'EUR200000000000740' })
289
289
  end
290
290
 
291
291
  it 'updates the current details in case of duplicated codes' do
292
292
  operation.merge_detail(detail)
293
293
  operation.merge_detail(detail)
294
294
 
295
- expect(operation.details.unknown).to eq({ 'AAA' => "EUR200000000000740\nEUR200000000000740" })
295
+ expect(operation.details.unknown).to eq({ 'A_A' => "EUR200000000000740\nEUR200000000000740" })
296
+ end
297
+
298
+ it 'does not add any detail if they are empty' do
299
+ detail = OpenStruct.new(
300
+ body: '0530004411001871EUR2 0001016255614090823',
301
+ detail_code: '',
302
+ detail: 'EUR200000000000740',
303
+ )
304
+ operation.merge_detail(detail)
305
+
306
+ expect(operation.details.unknown).to be_nil
296
307
  end
297
308
  end
298
309
  end
@@ -53,6 +53,7 @@ describe CFONB::Parser do
53
53
  'AAA' => "INTERNETA AAA\nINTERNETA ABB",
54
54
  'BBB' => 'INTERNETE BBB',
55
55
  'CCC' => 'INTERNETI CCC',
56
+ 'N_Y' => 'EXAMPLE WITH EMPTY SPACE',
56
57
  },
57
58
  )
58
59
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfonb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johan Le Bray
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-12-05 00:00:00.000000000 Z
12
+ date: 2024-12-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: license_finder