ibandit 1.21.0 → 1.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +1 -1
- data/.rubocop.yml +2 -48
- data/.rubocop_todo.yml +27 -35
- data/.ruby-version +1 -1
- data/CHANGELOG.md +7 -0
- data/Gemfile +10 -0
- data/bin/build_german_iban_rules.rb +26 -24
- data/data/german_iban_rules.yml +38 -92
- data/data/raw/BLZ2.xml +1 -0
- data/data/raw/IBANSTRUCTURE.xml +105 -9
- data/data/raw/IBAN_Registry.txt +52 -51
- data/data/raw/structure_additions.yml +18 -11
- data/data/structures.yml +92 -9
- data/ibandit.gemspec +1 -8
- data/lib/ibandit/iban.rb +8 -12
- data/lib/ibandit/sweden/bank_lookup.rb +1 -1
- data/lib/ibandit/version.rb +1 -1
- data/lib/ibandit.rb +2 -4
- data/spec/ibandit/iban_assembler_spec.rb +26 -22
- data/spec/ibandit/iban_spec.rb +56 -16
- metadata +4 -105
- data/data/raw/BLZ2.txt +0 -14692
data/data/structures.yml
CHANGED
@@ -273,7 +273,7 @@ EE:
|
|
273
273
|
:iban_example: EE382200221020145685
|
274
274
|
:bban_example: '2200221020145685'
|
275
275
|
:domestic_account_number_example: '221020145685'
|
276
|
-
:bban_format: "\\d{2}\\d{
|
276
|
+
:bban_format: "\\d{2}\\d{14}"
|
277
277
|
:bank_code_format: "[1-9][0-9]"
|
278
278
|
:account_number_format: "\\d{2}\\d{11}\\d{1}"
|
279
279
|
:local_check_digit_position: 20
|
@@ -286,7 +286,7 @@ ES:
|
|
286
286
|
:account_number_position: 13
|
287
287
|
:account_number_length: 12
|
288
288
|
:total_length: 24
|
289
|
-
:national_id_length:
|
289
|
+
:national_id_length: 8
|
290
290
|
:iban_example: ES9121000418450200051332
|
291
291
|
:bban_example: '21000418450200051332'
|
292
292
|
:domestic_account_number_example: 2100 0418 45 0200051332
|
@@ -841,8 +841,8 @@ PT:
|
|
841
841
|
:domestic_account_number_example: 0002.0123.12345678901.54
|
842
842
|
:bban_format: "\\d{4}\\d{4}\\d{11}\\d{2}"
|
843
843
|
:bank_code_format: "\\d{4}"
|
844
|
-
:account_number_format: "\\d{11}\\d{2}"
|
845
844
|
:branch_code_format: "\\d{4}"
|
845
|
+
:account_number_format: "\\d{11}\\d{2}"
|
846
846
|
:local_check_digit_position: 24
|
847
847
|
:local_check_digit_length: 2
|
848
848
|
RO:
|
@@ -1103,10 +1103,10 @@ ST:
|
|
1103
1103
|
:account_number_length: 13
|
1104
1104
|
:total_length: 25
|
1105
1105
|
:national_id_length: 8
|
1106
|
-
:iban_example:
|
1107
|
-
:bban_example: '
|
1108
|
-
:domestic_account_number_example: '
|
1109
|
-
:bban_format: "\\d{
|
1106
|
+
:iban_example: ST23000100010051845310146
|
1107
|
+
:bban_example: '000100010051845310146'
|
1108
|
+
:domestic_account_number_example: '0051845310146'
|
1109
|
+
:bban_format: "\\d{8}\\d{11}\\d{2}"
|
1110
1110
|
:bank_code_format: "\\d{4}"
|
1111
1111
|
:branch_code_format: "\\d{4}"
|
1112
1112
|
:account_number_format: "\\d{11}\\d{2}"
|
@@ -1137,9 +1137,9 @@ IQ:
|
|
1137
1137
|
:iban_example: IQ98NBIQ850123456789012
|
1138
1138
|
:bban_example: NBIQ850123456789012
|
1139
1139
|
:domestic_account_number_example: '123456789012'
|
1140
|
-
:bban_format: "[A-Z]{4}\\d{3}\\d{12}"
|
1141
1140
|
:bank_code_format: "[A-Z]{4}"
|
1142
1141
|
:branch_code_format: "\\d{3}"
|
1142
|
+
:bban_format: "[A-Z]{4}\\d{3}\\d{12}"
|
1143
1143
|
:account_number_format: "\\d{12}"
|
1144
1144
|
SV:
|
1145
1145
|
:bank_code_position: 5
|
@@ -1357,6 +1357,12 @@ MN:
|
|
1357
1357
|
:account_number_length: 12
|
1358
1358
|
:total_length: 20
|
1359
1359
|
:national_id_length: 4
|
1360
|
+
:iban_example: MN121234123456789123
|
1361
|
+
:bban_example: '1234123456789123'
|
1362
|
+
:domestic_account_number_example: 1234 5678 9123
|
1363
|
+
:bban_format: "\\d{4}\\d{12}"
|
1364
|
+
:bank_code_format: "\\d{4}"
|
1365
|
+
:account_number_format: "\\d{12}"
|
1360
1366
|
DZ:
|
1361
1367
|
:bank_code_position: 5
|
1362
1368
|
:bank_code_length: 3
|
@@ -1472,13 +1478,90 @@ RU:
|
|
1472
1478
|
:account_number_length: 15
|
1473
1479
|
:total_length: 33
|
1474
1480
|
:national_id_length: 14
|
1475
|
-
:iban_example:
|
1481
|
+
:iban_example: RU0304452522540817810538091310419
|
1476
1482
|
:bban_example: 044525225 40817 810 5 3809 1310419
|
1477
1483
|
:domestic_account_number_example: 40817 810 5 3809 1310419
|
1478
1484
|
:bban_format: "\\d{9}\\d{5}[A-Z0-9]{15}"
|
1479
1485
|
:bank_code_format: "\\d{9}"
|
1480
1486
|
:branch_code_format: "\\d{5}"
|
1481
1487
|
:account_number_format: "[A-Z0-9]{15}"
|
1488
|
+
SO:
|
1489
|
+
:bank_code_position: 5
|
1490
|
+
:bank_code_length: 4
|
1491
|
+
:branch_code_position: 9
|
1492
|
+
:branch_code_length: 3
|
1493
|
+
:account_number_position: 12
|
1494
|
+
:account_number_length: 12
|
1495
|
+
:total_length: 23
|
1496
|
+
:national_id_length: 7
|
1497
|
+
:iban_example: SO211000001001000100141
|
1498
|
+
:bban_example: '1000001001000100141'
|
1499
|
+
:domestic_account_number_example: '001000100141'
|
1500
|
+
:bban_format: "\\d{4}\\d{3}\\d{12}"
|
1501
|
+
:bank_code_format: "\\d{4}"
|
1502
|
+
:branch_code_format: "\\d{3}"
|
1503
|
+
:account_number_format: "\\d{12}"
|
1504
|
+
NI:
|
1505
|
+
:bank_code_position: 5
|
1506
|
+
:bank_code_length: 4
|
1507
|
+
:branch_code_position: 0
|
1508
|
+
:branch_code_length: 0
|
1509
|
+
:account_number_position: 9
|
1510
|
+
:account_number_length: 20
|
1511
|
+
:total_length: 28
|
1512
|
+
:national_id_length: 4
|
1513
|
+
:iban_example: NI45BAPR00000013000003558124
|
1514
|
+
:bban_example: BAPR00000013000003558124
|
1515
|
+
:domestic_account_number_example: '00000013000003558124'
|
1516
|
+
:bban_format: "[A-Z]{4}\\d{20}"
|
1517
|
+
:bank_code_format: "[A-Z]{4}"
|
1518
|
+
:account_number_format: "\\d{20}"
|
1519
|
+
FK:
|
1520
|
+
:bank_code_position: 5
|
1521
|
+
:bank_code_length: 2
|
1522
|
+
:branch_code_position: 0
|
1523
|
+
:branch_code_length: 0
|
1524
|
+
:account_number_position: 7
|
1525
|
+
:account_number_length: 12
|
1526
|
+
:total_length: 18
|
1527
|
+
:national_id_length: 2
|
1528
|
+
:iban_example: FK88SC123456789012
|
1529
|
+
:bban_example: SC123456789012
|
1530
|
+
:domestic_account_number_example: '123456789012'
|
1531
|
+
:bban_format: "[A-Z]{2}\\d{12}"
|
1532
|
+
:bank_code_format: "[A-Z]{2}"
|
1533
|
+
:account_number_format: "\\d{12}"
|
1534
|
+
OM:
|
1535
|
+
:bank_code_position: 5
|
1536
|
+
:bank_code_length: 3
|
1537
|
+
:branch_code_position: 0
|
1538
|
+
:branch_code_length: 0
|
1539
|
+
:account_number_position: 8
|
1540
|
+
:account_number_length: 16
|
1541
|
+
:total_length: 23
|
1542
|
+
:national_id_length: 3
|
1543
|
+
:iban_example: OM810180000001299123456
|
1544
|
+
:bban_example: '0180000001299123456'
|
1545
|
+
:domestic_account_number_example: '0000001299123456'
|
1546
|
+
:bban_format: "\\d{3}[A-Z0-9]{16}"
|
1547
|
+
:bank_code_format: "\\d{3}"
|
1548
|
+
:account_number_format: "[A-Z0-9]{16}"
|
1549
|
+
YE:
|
1550
|
+
:bank_code_position: 5
|
1551
|
+
:bank_code_length: 4
|
1552
|
+
:branch_code_position: 9
|
1553
|
+
:branch_code_length: 4
|
1554
|
+
:account_number_position: 13
|
1555
|
+
:account_number_length: 18
|
1556
|
+
:total_length: 30
|
1557
|
+
:national_id_length: 8
|
1558
|
+
:iban_example: YE15CBYE0001018861234567891234
|
1559
|
+
:bban_example: CBYE0001018861234567891234
|
1560
|
+
:domestic_account_number_example: '018861234567891234'
|
1561
|
+
:bban_format: "[A-Z]{4}\\d{4}[A-Z0-9]{18}"
|
1562
|
+
:bank_code_format: "[A-Z]{4}"
|
1563
|
+
:branch_code_format: "\\d{4}"
|
1564
|
+
:account_number_format: "[A-Z0-9]{18}"
|
1482
1565
|
AU:
|
1483
1566
|
:bank_code_length: 0
|
1484
1567
|
:branch_code_length: 6
|
data/ibandit.gemspec
CHANGED
@@ -27,13 +27,6 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
29
|
spec.required_ruby_version = ">= 2.7.0"
|
30
|
-
spec.add_development_dependency "gc_ruboconfig", "~> 5.0"
|
31
|
-
spec.add_development_dependency "nokogiri", "~> 1.6"
|
32
|
-
spec.add_development_dependency "pry", "~> 0.13"
|
33
|
-
spec.add_development_dependency "pry-byebug", "~> 3.10"
|
34
|
-
spec.add_development_dependency "rspec", "~> 3.12"
|
35
|
-
spec.add_development_dependency "rspec-its", "~> 1.2"
|
36
|
-
spec.add_development_dependency "sax-machine", "~> 1.3"
|
37
30
|
|
38
|
-
spec.
|
31
|
+
spec.add_dependency "i18n"
|
39
32
|
end
|
data/lib/ibandit/iban.rb
CHANGED
@@ -179,16 +179,15 @@ module Ibandit
|
|
179
179
|
return unless valid_country_code?
|
180
180
|
return true if swift_branch_code.to_s.length == structure[:branch_code_length]
|
181
181
|
|
182
|
-
if structure[:branch_code_length]&.zero?
|
183
|
-
|
182
|
+
@errors[:branch_code] = if structure[:branch_code_length]&.zero?
|
183
|
+
Ibandit.translate(:not_used_in_country,
|
184
184
|
country_code: country_code)
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
end
|
185
|
+
elsif swift_branch_code.nil? || swift_branch_code.empty?
|
186
|
+
Ibandit.translate(:is_required)
|
187
|
+
else
|
188
|
+
Ibandit.translate(:wrong_length,
|
189
|
+
expected: structure[:branch_code_length])
|
190
|
+
end
|
192
191
|
false
|
193
192
|
end
|
194
193
|
|
@@ -390,7 +389,6 @@ module Ibandit
|
|
390
389
|
valid_modulus_check_branch_code?
|
391
390
|
end
|
392
391
|
|
393
|
-
# rubocop:disable Metrics/AbcSize
|
394
392
|
def bank_code_passes_checksum_test?
|
395
393
|
return false unless swift_bank_code
|
396
394
|
return false if swift_bank_code.length != 9
|
@@ -407,8 +405,6 @@ module Ibandit
|
|
407
405
|
|
408
406
|
mod.zero?
|
409
407
|
end
|
410
|
-
# rubocop:enable Metrics/AbcSize
|
411
|
-
|
412
408
|
###################
|
413
409
|
# Private methods #
|
414
410
|
###################
|
data/lib/ibandit/version.rb
CHANGED
data/lib/ibandit.rb
CHANGED
@@ -30,10 +30,8 @@ module Ibandit
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def structures
|
33
|
-
@structures ||= YAML.
|
34
|
-
|
35
|
-
permitted_classes: [Range, Symbol],
|
36
|
-
)
|
33
|
+
@structures ||= YAML.safe_load_file(File.expand_path("../data/structures.yml", __dir__),
|
34
|
+
permitted_classes: [Range, Symbol])
|
37
35
|
end
|
38
36
|
|
39
37
|
def translate(key, options = {})
|
@@ -293,11 +293,11 @@ describe Ibandit::IBANAssembler do
|
|
293
293
|
it_behaves_like "allows round trips", "ES80 2310 0001 1800 0001 2345"
|
294
294
|
|
295
295
|
context "without a bank_code or branch code" do
|
296
|
-
before
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
296
|
+
before do
|
297
|
+
args.delete(:bank_code)
|
298
|
+
args.delete(:branch_code)
|
299
|
+
args[:account_number] = "23100001180000012345"
|
300
|
+
end
|
301
301
|
|
302
302
|
it { is_expected.to be_nil }
|
303
303
|
end
|
@@ -487,27 +487,29 @@ describe Ibandit::IBANAssembler do
|
|
487
487
|
it_behaves_like "allows round trips", "HU42 1177 3016 1111 1018 0000 0000"
|
488
488
|
|
489
489
|
context "without a bank_code or branch_code" do
|
490
|
-
before
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
490
|
+
before do
|
491
|
+
args.delete(:bank_code)
|
492
|
+
args.delete(:branch_code)
|
493
|
+
args[:account_number] = "11773016-11111018-00000000"
|
494
|
+
end
|
495
495
|
|
496
496
|
it { is_expected.to be_nil }
|
497
497
|
end
|
498
498
|
|
499
499
|
context "without a bank_code" do
|
500
|
-
before
|
501
|
-
|
502
|
-
|
500
|
+
before do
|
501
|
+
args.delete(:bank_code)
|
502
|
+
args[:account_number] = "11773016-11111018-00000000"
|
503
|
+
end
|
503
504
|
|
504
505
|
it { is_expected.to be_nil }
|
505
506
|
end
|
506
507
|
|
507
508
|
context "without a branch_code" do
|
508
|
-
before
|
509
|
-
|
510
|
-
|
509
|
+
before do
|
510
|
+
args.delete(:branch_code)
|
511
|
+
args[:account_number] = "11773016-11111018-00000000"
|
512
|
+
end
|
511
513
|
|
512
514
|
it { is_expected.to be_nil }
|
513
515
|
end
|
@@ -826,9 +828,10 @@ describe Ibandit::IBANAssembler do
|
|
826
828
|
it_behaves_like "allows round trips", "NO93 8601 1117 947"
|
827
829
|
|
828
830
|
context "without a bank_code" do
|
829
|
-
before
|
830
|
-
|
831
|
-
|
831
|
+
before do
|
832
|
+
args.delete(:bank_code)
|
833
|
+
args[:account_number] = "86011117947"
|
834
|
+
end
|
832
835
|
|
833
836
|
it { is_expected.to be_nil }
|
834
837
|
end
|
@@ -854,9 +857,10 @@ describe Ibandit::IBANAssembler do
|
|
854
857
|
it_behaves_like "allows round trips", "PL60 1020 1026 0000 0422 7020 1111"
|
855
858
|
|
856
859
|
context "without a bank_code" do
|
857
|
-
before
|
858
|
-
|
859
|
-
|
860
|
+
before do
|
861
|
+
args.delete(:bank_code)
|
862
|
+
args[:account_number] = "60102010260000042270201111"
|
863
|
+
end
|
860
864
|
|
861
865
|
it { is_expected.to be_nil }
|
862
866
|
end
|
data/spec/ibandit/iban_spec.rb
CHANGED
@@ -11,9 +11,7 @@ describe Ibandit::IBAN do
|
|
11
11
|
its(:iban) { is_expected.to eq(iban_code) }
|
12
12
|
|
13
13
|
context "with locales" do
|
14
|
-
all_keys = YAML.
|
15
|
-
File.read("config/locales/en.yml"),
|
16
|
-
)["en"]["ibandit"].keys
|
14
|
+
all_keys = YAML.safe_load_file("config/locales/en.yml")["en"]["ibandit"].keys
|
17
15
|
|
18
16
|
Ibandit::Constants::SUPPORTED_LOCALES.each do |locale|
|
19
17
|
context "for #{locale}", locale: locale do
|
@@ -129,19 +127,19 @@ describe Ibandit::IBAN do
|
|
129
127
|
end
|
130
128
|
|
131
129
|
context "when the IBAN was created from a Belgian IBAN" do
|
132
|
-
let(:iban_code) { "
|
130
|
+
let(:iban_code) { "BE68539007547034" }
|
133
131
|
|
134
132
|
its(:country_code) { is_expected.to eq("BE") }
|
135
|
-
its(:bank_code) { is_expected.to eq("
|
133
|
+
its(:bank_code) { is_expected.to eq("539") }
|
136
134
|
its(:branch_code) { is_expected.to be_nil }
|
137
|
-
its(:account_number) { is_expected.to eq("
|
135
|
+
its(:account_number) { is_expected.to eq("539007547034") }
|
138
136
|
its(:account_number_suffix) { is_expected.to be_nil }
|
139
|
-
its(:swift_bank_code) { is_expected.to eq("
|
137
|
+
its(:swift_bank_code) { is_expected.to eq("539") }
|
140
138
|
its(:swift_branch_code) { is_expected.to be_nil }
|
141
|
-
its(:swift_account_number) { is_expected.to eq("
|
142
|
-
its(:swift_national_id) { is_expected.to eq("
|
143
|
-
its(:local_check_digits) { is_expected.to eq("
|
144
|
-
its(:bban) { is_expected.to eq("
|
139
|
+
its(:swift_account_number) { is_expected.to eq("539007547034") }
|
140
|
+
its(:swift_national_id) { is_expected.to eq("539") }
|
141
|
+
its(:local_check_digits) { is_expected.to eq("34") }
|
142
|
+
its(:bban) { is_expected.to eq("539007547034") }
|
145
143
|
end
|
146
144
|
|
147
145
|
context "when the IBAN was created with local details" do
|
@@ -869,6 +867,23 @@ describe Ibandit::IBAN do
|
|
869
867
|
expect(subject.errors).to eq(account_number: "format is invalid")
|
870
868
|
end
|
871
869
|
end
|
870
|
+
|
871
|
+
# Spanish IBANs have recently switched to 8 character national IDs
|
872
|
+
context "with a Spanish IBAN" do
|
873
|
+
let(:iban_code) { "ES9121000418450200051332" }
|
874
|
+
|
875
|
+
its(:country_code) { is_expected.to eq("ES") }
|
876
|
+
its(:bank_code) { is_expected.to eq("2100") }
|
877
|
+
its(:branch_code) { is_expected.to eq("0418") }
|
878
|
+
its(:account_number) { is_expected.to eq("450200051332") }
|
879
|
+
its(:account_number_suffix) { is_expected.to be_nil }
|
880
|
+
its(:swift_bank_code) { is_expected.to eq("2100") }
|
881
|
+
its(:swift_branch_code) { is_expected.to eq("0418") }
|
882
|
+
its(:swift_account_number) { is_expected.to eq("450200051332") }
|
883
|
+
its(:swift_national_id) { is_expected.to eq("21000418") }
|
884
|
+
its(:local_check_digits) { is_expected.to eq("45") }
|
885
|
+
its(:bban) { is_expected.to eq("21000418450200051332") }
|
886
|
+
end
|
872
887
|
end
|
873
888
|
|
874
889
|
describe "#to_s" do
|
@@ -1318,12 +1333,11 @@ describe Ibandit::IBAN do
|
|
1318
1333
|
valid_branch_code?: valid_branch_code,
|
1319
1334
|
valid_account_number?: valid_account_number,
|
1320
1335
|
)
|
1336
|
+
iban.valid_local_modulus_check?
|
1321
1337
|
end
|
1322
1338
|
|
1323
1339
|
after { Ibandit.modulus_checker = nil }
|
1324
1340
|
|
1325
|
-
before { iban.valid_local_modulus_check? }
|
1326
|
-
|
1327
1341
|
context "with an invalid bank code" do
|
1328
1342
|
let(:iban_code) { "AT611904300234573201" }
|
1329
1343
|
let(:valid_bank_code) { false }
|
@@ -1351,12 +1365,13 @@ describe Ibandit::IBAN do
|
|
1351
1365
|
let(:valid_branch_code) { false }
|
1352
1366
|
let(:valid_account_number) { true }
|
1353
1367
|
|
1354
|
-
before
|
1368
|
+
before do
|
1369
|
+
Ibandit.bic_finder = double(call: "BARCGB22XXX")
|
1370
|
+
iban.valid_local_modulus_check?
|
1371
|
+
end
|
1355
1372
|
|
1356
1373
|
after { Ibandit.bic_finder = nil }
|
1357
1374
|
|
1358
|
-
before { iban.valid_local_modulus_check? }
|
1359
|
-
|
1360
1375
|
it "calls valid_branch_code? with an IBAN object" do
|
1361
1376
|
expect(Ibandit.modulus_checker).
|
1362
1377
|
to receive(:valid_branch_code?).
|
@@ -2235,6 +2250,31 @@ describe Ibandit::IBAN do
|
|
2235
2250
|
let(:valid_iban) { "RU0204452560040702810412345678901" }
|
2236
2251
|
let(:invalid_iban) { "RUXX0204452560040702810412345678901" }
|
2237
2252
|
end
|
2253
|
+
|
2254
|
+
it_behaves_like "a country's IBAN", "SO" do
|
2255
|
+
let(:valid_iban) { "SO211000001001000100141" }
|
2256
|
+
let(:invalid_iban) { "SO411000001001000100141" }
|
2257
|
+
end
|
2258
|
+
|
2259
|
+
it_behaves_like "a country's IBAN", "NI" do
|
2260
|
+
let(:valid_iban) { "NI45BAPR00000013000003558124" }
|
2261
|
+
let(:invalid_iban) { "NI55BAPR00000013000003558124" }
|
2262
|
+
end
|
2263
|
+
|
2264
|
+
it_behaves_like "a country's IBAN", "FK" do
|
2265
|
+
let(:valid_iban) { "FK88SC123456789012" }
|
2266
|
+
let(:invalid_iban) { "FK8SC123456789012" }
|
2267
|
+
end
|
2268
|
+
|
2269
|
+
it_behaves_like "a country's IBAN", "OM" do
|
2270
|
+
let(:valid_iban) { "OM810180000001299123456" }
|
2271
|
+
let(:invalid_iban) { "OM10180000001299123456" }
|
2272
|
+
end
|
2273
|
+
|
2274
|
+
it_behaves_like "a country's IBAN", "YE" do
|
2275
|
+
let(:valid_iban) { "YE15CBYE0001018861234567891234" }
|
2276
|
+
let(:invalid_iban) { "YE1CBYE0001018861234567891234" }
|
2277
|
+
end
|
2238
2278
|
end
|
2239
2279
|
|
2240
2280
|
describe "#local_check_digits" do
|
metadata
CHANGED
@@ -1,113 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ibandit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.22.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GoCardless
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-01-23 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: gc_ruboconfig
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '5.0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '5.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: nokogiri
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1.6'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.6'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: pry
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.13'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0.13'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: pry-byebug
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '3.10'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '3.10'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rspec
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '3.12'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '3.12'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rspec-its
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '1.2'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '1.2'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: sax-machine
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '1.3'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '1.3'
|
111
12
|
- !ruby/object:Gem::Dependency
|
112
13
|
name: i18n
|
113
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,7 +58,7 @@ files:
|
|
157
58
|
- config/locales/sl.yml
|
158
59
|
- config/locales/sv.yml
|
159
60
|
- data/german_iban_rules.yml
|
160
|
-
- data/raw/BLZ2.
|
61
|
+
- data/raw/BLZ2.xml
|
161
62
|
- data/raw/IBANSTRUCTURE.xml
|
162
63
|
- data/raw/IBAN_Registry.txt
|
163
64
|
- data/raw/pseudo_ibans.yml
|
@@ -199,7 +100,6 @@ licenses:
|
|
199
100
|
- MIT
|
200
101
|
metadata:
|
201
102
|
rubygems_mfa_required: 'true'
|
202
|
-
post_install_message:
|
203
103
|
rdoc_options: []
|
204
104
|
require_paths:
|
205
105
|
- lib
|
@@ -214,8 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
114
|
- !ruby/object:Gem::Version
|
215
115
|
version: '0'
|
216
116
|
requirements: []
|
217
|
-
rubygems_version: 3.
|
218
|
-
signing_key:
|
117
|
+
rubygems_version: 3.6.2
|
219
118
|
specification_version: 4
|
220
119
|
summary: Convert national banking details into IBANs, and vice-versa.
|
221
120
|
test_files: []
|