ibandit 1.21.0 → 1.27.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.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +1 -1
- data/.gitignore +1 -0
- data/.rubocop.yml +2 -48
- data/.rubocop_todo.yml +35 -36
- data/.ruby-version +1 -1
- data/CHANGELOG.md +31 -0
- data/Gemfile +10 -0
- data/bin/build_german_iban_rules.rb +26 -24
- data/data/german_iban_rules.yml +56 -161
- 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/raw/swedish_bank_lookup.yml +4 -1
- data/data/structures.yml +92 -9
- data/ibandit.gemspec +1 -8
- data/lib/ibandit/iban.rb +11 -12
- data/lib/ibandit/sweden/bank_lookup.rb +1 -1
- data/lib/ibandit/sweden/validator.rb +1 -1
- data/lib/ibandit/version.rb +1 -1
- data/lib/ibandit.rb +2 -4
- data/spec/ibandit/german_details_converter_spec.rb +2 -2
- data/spec/ibandit/iban_assembler_spec.rb +26 -22
- data/spec/ibandit/iban_spec.rb +235 -16
- metadata +4 -105
- data/data/raw/BLZ2.txt +0 -14692
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
|
@@ -185,6 +183,75 @@ describe Ibandit::IBAN do
|
|
185
183
|
its(:iban) { is_expected.to eq("SE5412000000012810105723") }
|
186
184
|
its(:pseudo_iban) { is_expected.to eq("SEZZX1281XXX0105723") }
|
187
185
|
its(:to_s) { is_expected.to eq("SE5412000000012810105723") }
|
186
|
+
its(:valid?) { is_expected.to eq(true) }
|
187
|
+
|
188
|
+
context "and the clearing code is not part of the IBAN" do
|
189
|
+
context "and the branch code allows for zero-filling of short account numbers" do
|
190
|
+
let(:arg) do
|
191
|
+
{
|
192
|
+
country_code: "SE",
|
193
|
+
branch_code: "6000",
|
194
|
+
account_number: "1234567",
|
195
|
+
}
|
196
|
+
end
|
197
|
+
|
198
|
+
its(:country_code) { is_expected.to eq("SE") }
|
199
|
+
its(:bank_code) { is_expected.to be_nil }
|
200
|
+
its(:branch_code) { is_expected.to eq("6000") }
|
201
|
+
its(:account_number) { is_expected.to eq("001234567") }
|
202
|
+
its(:swift_bank_code) { is_expected.to eq("600") }
|
203
|
+
its(:swift_branch_code) { is_expected.to be_nil }
|
204
|
+
its(:swift_account_number) { is_expected.to eq("00000000001234567") }
|
205
|
+
its(:iban) { is_expected.to eq("SE2260000000000001234567") }
|
206
|
+
its(:pseudo_iban) { is_expected.to eq("SEZZX6000X001234567") }
|
207
|
+
its(:to_s) { is_expected.to eq("SE2260000000000001234567") }
|
208
|
+
its(:valid?) { is_expected.to eq(true) }
|
209
|
+
end
|
210
|
+
|
211
|
+
context "and the branch code does not allow for zero-filling of short account numbers" do
|
212
|
+
let(:arg) do
|
213
|
+
{
|
214
|
+
country_code: "SE",
|
215
|
+
branch_code: "3300",
|
216
|
+
account_number: "1234567",
|
217
|
+
}
|
218
|
+
end
|
219
|
+
|
220
|
+
its(:country_code) { is_expected.to eq("SE") }
|
221
|
+
its(:bank_code) { is_expected.to be_nil }
|
222
|
+
its(:branch_code) { is_expected.to eq("3300") }
|
223
|
+
its(:account_number) { is_expected.to eq("1234567") }
|
224
|
+
its(:swift_bank_code) { is_expected.to eq("300") }
|
225
|
+
its(:swift_branch_code) { is_expected.to be_nil }
|
226
|
+
its(:swift_account_number) { is_expected.to eq("00000000001234567") }
|
227
|
+
its(:iban) { is_expected.to eq("SE4130000000000001234567") }
|
228
|
+
its(:pseudo_iban) { is_expected.to eq("SEZZX3300XXX1234567") }
|
229
|
+
its(:to_s) { is_expected.to eq("SE4130000000000001234567") }
|
230
|
+
its(:valid?) { is_expected.to eq(false) }
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
context "and the clearing code is part of the IBAN" do
|
235
|
+
let(:arg) do
|
236
|
+
{
|
237
|
+
country_code: "SE",
|
238
|
+
branch_code: "3410",
|
239
|
+
account_number: "1234567",
|
240
|
+
}
|
241
|
+
end
|
242
|
+
|
243
|
+
its(:country_code) { is_expected.to eq("SE") }
|
244
|
+
its(:bank_code) { is_expected.to be_nil }
|
245
|
+
its(:branch_code) { is_expected.to eq("3410") }
|
246
|
+
its(:account_number) { is_expected.to eq("1234567") }
|
247
|
+
its(:swift_bank_code) { is_expected.to eq("300") }
|
248
|
+
its(:swift_branch_code) { is_expected.to be_nil }
|
249
|
+
its(:swift_account_number) { is_expected.to eq("00000034101234567") }
|
250
|
+
its(:iban) { is_expected.to eq("SE1030000000034101234567") }
|
251
|
+
its(:pseudo_iban) { is_expected.to eq("SEZZX3410XXX1234567") }
|
252
|
+
its(:to_s) { is_expected.to eq("SE1030000000034101234567") }
|
253
|
+
its(:valid?) { is_expected.to eq(true) }
|
254
|
+
end
|
188
255
|
end
|
189
256
|
|
190
257
|
context "when the IBAN was created from a pseudo-IBAN" do
|
@@ -200,6 +267,98 @@ describe Ibandit::IBAN do
|
|
200
267
|
its(:iban) { is_expected.to eq("SE5412000000012810105723") }
|
201
268
|
its(:pseudo_iban) { is_expected.to eq("SEZZX1281XXX0105723") }
|
202
269
|
its(:to_s) { is_expected.to eq("SE5412000000012810105723") }
|
270
|
+
its(:valid?) { is_expected.to eq(true) }
|
271
|
+
end
|
272
|
+
|
273
|
+
context "when the IBAN was created from a Swedish IBAN" do
|
274
|
+
context "with check digits that make it look like a pseudo-IBAN" do
|
275
|
+
let(:arg) { "SEZZ30000000031231234567" }
|
276
|
+
|
277
|
+
its(:country_code) { is_expected.to eq("SE") }
|
278
|
+
its(:valid?) { is_expected.to eq(false) }
|
279
|
+
end
|
280
|
+
|
281
|
+
context "where the clearing code is part of the account number" do
|
282
|
+
let(:arg) { "SE4730000000031231234567" }
|
283
|
+
|
284
|
+
its(:country_code) { is_expected.to eq("SE") }
|
285
|
+
its(:bank_code) { is_expected.to be_nil }
|
286
|
+
its(:branch_code) { is_expected.to be_nil }
|
287
|
+
its(:account_number) { is_expected.to be_nil }
|
288
|
+
its(:swift_bank_code) { is_expected.to eq("300") }
|
289
|
+
its(:swift_branch_code) { is_expected.to be_nil }
|
290
|
+
its(:swift_account_number) { is_expected.to eq("00000031231234567") }
|
291
|
+
its(:iban) { is_expected.to eq("SE4730000000031231234567") }
|
292
|
+
its(:pseudo_iban) { is_expected.to be_nil }
|
293
|
+
its(:to_s) { is_expected.to eq("SE4730000000031231234567") }
|
294
|
+
its(:valid?) { is_expected.to eq(true) }
|
295
|
+
end
|
296
|
+
|
297
|
+
context "where the clearing code is not part of the account number" do
|
298
|
+
let(:arg) { "SE7160000000000123456789" }
|
299
|
+
|
300
|
+
its(:country_code) { is_expected.to eq("SE") }
|
301
|
+
its(:bank_code) { is_expected.to be_nil }
|
302
|
+
its(:branch_code) { is_expected.to be_nil }
|
303
|
+
its(:account_number) { is_expected.to be_nil }
|
304
|
+
its(:swift_bank_code) { is_expected.to eq("600") }
|
305
|
+
its(:swift_branch_code) { is_expected.to be_nil }
|
306
|
+
its(:swift_account_number) { is_expected.to eq("00000000123456789") }
|
307
|
+
its(:iban) { is_expected.to eq("SE7160000000000123456789") }
|
308
|
+
its(:pseudo_iban) { is_expected.to be_nil }
|
309
|
+
its(:to_s) { is_expected.to eq("SE7160000000000123456789") }
|
310
|
+
its(:valid?) { is_expected.to eq(true) }
|
311
|
+
end
|
312
|
+
|
313
|
+
context "where the clearing code is 3300, and therefore the account number is the national ID" do
|
314
|
+
context "where the person was born in the 1990s" do
|
315
|
+
let(:arg) { "SE2130000000009308127392" }
|
316
|
+
|
317
|
+
its(:country_code) { is_expected.to eq("SE") }
|
318
|
+
its(:bank_code) { is_expected.to be_nil }
|
319
|
+
its(:branch_code) { is_expected.to be_nil }
|
320
|
+
its(:account_number) { is_expected.to be_nil }
|
321
|
+
its(:swift_bank_code) { is_expected.to eq("300") }
|
322
|
+
its(:swift_branch_code) { is_expected.to be_nil }
|
323
|
+
its(:swift_account_number) { is_expected.to eq("00000009308127392") }
|
324
|
+
its(:iban) { is_expected.to eq("SE2130000000009308127392") }
|
325
|
+
its(:pseudo_iban) { is_expected.to be_nil }
|
326
|
+
its(:to_s) { is_expected.to eq("SE2130000000009308127392") }
|
327
|
+
its(:valid?) { is_expected.to eq(true) }
|
328
|
+
end
|
329
|
+
|
330
|
+
context "where the person was born in the 2000s" do
|
331
|
+
let(:arg) { "SE9430000000000607274287" }
|
332
|
+
|
333
|
+
its(:country_code) { is_expected.to eq("SE") }
|
334
|
+
its(:bank_code) { is_expected.to be_nil }
|
335
|
+
its(:branch_code) { is_expected.to be_nil }
|
336
|
+
its(:account_number) { is_expected.to be_nil }
|
337
|
+
its(:swift_bank_code) { is_expected.to eq("300") }
|
338
|
+
its(:swift_branch_code) { is_expected.to be_nil }
|
339
|
+
its(:swift_account_number) { is_expected.to eq("00000000607274287") }
|
340
|
+
its(:iban) { is_expected.to eq("SE9430000000000607274287") }
|
341
|
+
its(:pseudo_iban) { is_expected.to be_nil }
|
342
|
+
its(:to_s) { is_expected.to eq("SE9430000000000607274287") }
|
343
|
+
its(:valid?) { is_expected.to eq(true) }
|
344
|
+
end
|
345
|
+
|
346
|
+
context "where the person was born in the year 2000" do
|
347
|
+
let(:arg) { "SE3830000000000007134937" }
|
348
|
+
|
349
|
+
its(:country_code) { is_expected.to eq("SE") }
|
350
|
+
its(:bank_code) { is_expected.to be_nil }
|
351
|
+
its(:branch_code) { is_expected.to be_nil }
|
352
|
+
its(:account_number) { is_expected.to be_nil }
|
353
|
+
its(:swift_bank_code) { is_expected.to eq("300") }
|
354
|
+
its(:swift_branch_code) { is_expected.to be_nil }
|
355
|
+
its(:swift_account_number) { is_expected.to eq("00000000007134937") }
|
356
|
+
its(:iban) { is_expected.to eq("SE3830000000000007134937") }
|
357
|
+
its(:pseudo_iban) { is_expected.to be_nil }
|
358
|
+
its(:to_s) { is_expected.to eq("SE3830000000000007134937") }
|
359
|
+
its(:valid?) { is_expected.to eq(true) }
|
360
|
+
end
|
361
|
+
end
|
203
362
|
end
|
204
363
|
|
205
364
|
context "when the IBAN was created with local details for Australia" do
|
@@ -640,6 +799,24 @@ describe Ibandit::IBAN do
|
|
640
799
|
its(:to_s) { is_expected.to eq("") }
|
641
800
|
end
|
642
801
|
|
802
|
+
context "with a nil account number" do
|
803
|
+
let(:account_number) { nil }
|
804
|
+
|
805
|
+
its(:country_code) { is_expected.to eq("NZ") }
|
806
|
+
its(:bank_code) { is_expected.to eq("11") }
|
807
|
+
its(:branch_code) { is_expected.to eq("2222") }
|
808
|
+
its(:account_number) { is_expected.to eq(nil) }
|
809
|
+
its(:account_number_suffix) { is_expected.to eq(nil) }
|
810
|
+
its(:swift_bank_code) { is_expected.to eq("11") }
|
811
|
+
its(:swift_branch_code) { is_expected.to eq("2222") }
|
812
|
+
its(:swift_account_number) { is_expected.to eq(nil) }
|
813
|
+
its(:swift_national_id) { is_expected.to eq("112222") }
|
814
|
+
its(:iban) { is_expected.to be_nil }
|
815
|
+
its(:pseudo_iban) { is_expected.to eq(nil) }
|
816
|
+
its(:valid?) { is_expected.to eq(false) }
|
817
|
+
its(:to_s) { is_expected.to eq("") }
|
818
|
+
end
|
819
|
+
|
643
820
|
context "with bank and branch code embedded in account_number field" do
|
644
821
|
let(:arg) do
|
645
822
|
{
|
@@ -869,6 +1046,23 @@ describe Ibandit::IBAN do
|
|
869
1046
|
expect(subject.errors).to eq(account_number: "format is invalid")
|
870
1047
|
end
|
871
1048
|
end
|
1049
|
+
|
1050
|
+
# Spanish IBANs have recently switched to 8 character national IDs
|
1051
|
+
context "with a Spanish IBAN" do
|
1052
|
+
let(:iban_code) { "ES9121000418450200051332" }
|
1053
|
+
|
1054
|
+
its(:country_code) { is_expected.to eq("ES") }
|
1055
|
+
its(:bank_code) { is_expected.to eq("2100") }
|
1056
|
+
its(:branch_code) { is_expected.to eq("0418") }
|
1057
|
+
its(:account_number) { is_expected.to eq("450200051332") }
|
1058
|
+
its(:account_number_suffix) { is_expected.to be_nil }
|
1059
|
+
its(:swift_bank_code) { is_expected.to eq("2100") }
|
1060
|
+
its(:swift_branch_code) { is_expected.to eq("0418") }
|
1061
|
+
its(:swift_account_number) { is_expected.to eq("450200051332") }
|
1062
|
+
its(:swift_national_id) { is_expected.to eq("21000418") }
|
1063
|
+
its(:local_check_digits) { is_expected.to eq("45") }
|
1064
|
+
its(:bban) { is_expected.to eq("21000418450200051332") }
|
1065
|
+
end
|
872
1066
|
end
|
873
1067
|
|
874
1068
|
describe "#to_s" do
|
@@ -1318,12 +1512,11 @@ describe Ibandit::IBAN do
|
|
1318
1512
|
valid_branch_code?: valid_branch_code,
|
1319
1513
|
valid_account_number?: valid_account_number,
|
1320
1514
|
)
|
1515
|
+
iban.valid_local_modulus_check?
|
1321
1516
|
end
|
1322
1517
|
|
1323
1518
|
after { Ibandit.modulus_checker = nil }
|
1324
1519
|
|
1325
|
-
before { iban.valid_local_modulus_check? }
|
1326
|
-
|
1327
1520
|
context "with an invalid bank code" do
|
1328
1521
|
let(:iban_code) { "AT611904300234573201" }
|
1329
1522
|
let(:valid_bank_code) { false }
|
@@ -1351,12 +1544,13 @@ describe Ibandit::IBAN do
|
|
1351
1544
|
let(:valid_branch_code) { false }
|
1352
1545
|
let(:valid_account_number) { true }
|
1353
1546
|
|
1354
|
-
before
|
1547
|
+
before do
|
1548
|
+
Ibandit.bic_finder = double(call: "BARCGB22XXX")
|
1549
|
+
iban.valid_local_modulus_check?
|
1550
|
+
end
|
1355
1551
|
|
1356
1552
|
after { Ibandit.bic_finder = nil }
|
1357
1553
|
|
1358
|
-
before { iban.valid_local_modulus_check? }
|
1359
|
-
|
1360
1554
|
it "calls valid_branch_code? with an IBAN object" do
|
1361
1555
|
expect(Ibandit.modulus_checker).
|
1362
1556
|
to receive(:valid_branch_code?).
|
@@ -2235,6 +2429,31 @@ describe Ibandit::IBAN do
|
|
2235
2429
|
let(:valid_iban) { "RU0204452560040702810412345678901" }
|
2236
2430
|
let(:invalid_iban) { "RUXX0204452560040702810412345678901" }
|
2237
2431
|
end
|
2432
|
+
|
2433
|
+
it_behaves_like "a country's IBAN", "SO" do
|
2434
|
+
let(:valid_iban) { "SO211000001001000100141" }
|
2435
|
+
let(:invalid_iban) { "SO411000001001000100141" }
|
2436
|
+
end
|
2437
|
+
|
2438
|
+
it_behaves_like "a country's IBAN", "NI" do
|
2439
|
+
let(:valid_iban) { "NI45BAPR00000013000003558124" }
|
2440
|
+
let(:invalid_iban) { "NI55BAPR00000013000003558124" }
|
2441
|
+
end
|
2442
|
+
|
2443
|
+
it_behaves_like "a country's IBAN", "FK" do
|
2444
|
+
let(:valid_iban) { "FK88SC123456789012" }
|
2445
|
+
let(:invalid_iban) { "FK8SC123456789012" }
|
2446
|
+
end
|
2447
|
+
|
2448
|
+
it_behaves_like "a country's IBAN", "OM" do
|
2449
|
+
let(:valid_iban) { "OM810180000001299123456" }
|
2450
|
+
let(:invalid_iban) { "OM10180000001299123456" }
|
2451
|
+
end
|
2452
|
+
|
2453
|
+
it_behaves_like "a country's IBAN", "YE" do
|
2454
|
+
let(:valid_iban) { "YE15CBYE0001018861234567891234" }
|
2455
|
+
let(:invalid_iban) { "YE1CBYE0001018861234567891234" }
|
2456
|
+
end
|
2238
2457
|
end
|
2239
2458
|
|
2240
2459
|
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.27.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-09-08 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: []
|