ibandit 1.8.0 → 1.10.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/.rubocop.yml +4 -0
- data/CHANGELOG.md +12 -0
- data/README.md +4 -4
- data/bin/build_structure_file.rb +1 -1
- data/data/german_iban_rules.yml +12 -69
- data/data/raw/BLZ2.txt +522 -837
- data/ibandit.gemspec +2 -1
- data/lib/ibandit/check_digit.rb +1 -1
- data/lib/ibandit/iban.rb +3 -3
- data/lib/ibandit/version.rb +1 -1
- data/lib/ibandit.rb +1 -1
- data/spec/ibandit/structure_spec.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1866d9f67f4447ac40d1554447d05076b0eced8053dcaf425876b820a301b012
|
4
|
+
data.tar.gz: dda8e72009151f2f8b0c2edd0bad39288c76d4d581b0faf398d156e0fb8b89b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a41bae1cd94dcf1338b5cbfff842cfbecb13153768deaec111ba284173a23bca48e3d417299b16b8a693234966e2d857ab03588574be3d033e95de3d4209aa30
|
7
|
+
data.tar.gz: 150b6eeffe8667c22ed41d698dfa196ca2624e008c814e30f82aa1a471ce4c38b04975759197275d3a3db38ee869233eb7c7025866b032ea2c5bc004cba9961e
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
2
2
|
inherit_gem:
|
3
3
|
gc_ruboconfig: rubocop.yml
|
4
|
+
require: rubocop-rails
|
4
5
|
|
5
6
|
AllCops:
|
6
7
|
TargetRubyVersion: 2.5
|
@@ -48,3 +49,6 @@ Layout/DotPosition:
|
|
48
49
|
# this is quite aggressive.
|
49
50
|
Gemspec/RequiredRubyVersion:
|
50
51
|
Enabled: false
|
52
|
+
|
53
|
+
Rails/Blank:
|
54
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 1.10.0 - June 1, 2022
|
2
|
+
|
3
|
+
- Update BLZ data - 05.05.22
|
4
|
+
|
5
|
+
## 1.9.0 - February 16, 2022
|
6
|
+
|
7
|
+
- Update BLZ data - BLZ_20220307
|
8
|
+
|
9
|
+
## 1.8.1 - February 8, 2022
|
10
|
+
|
11
|
+
- Fix issue with structure loading - thanks @shaicoleman
|
12
|
+
|
1
13
|
## 1.8.0 - January 7, 2022
|
2
14
|
|
3
15
|
- Add Ruby 3.1 support
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@ Ibandit []
|
|
4
4
|
Ibandit is a Ruby library for manipulating and validating
|
5
5
|
[IBANs](http://en.wikipedia.org/wiki/International_Bank_Account_Number).
|
6
6
|
|
7
|
-
The primary objective is to provide an interface that enables the storage and retrieval national banking details as a single value. This may be an IBAN, if a country fully and unambiguously supports it, or a combination of IBAN and/or pseudo-IBAN.
|
7
|
+
The primary objective is to provide an interface that enables the storage and retrieval of national banking details as a single value. This may be an IBAN, if a country fully and unambiguously supports it, or a combination of IBAN and/or pseudo-IBAN.
|
8
8
|
|
9
9
|
Therefore, there are three distinct modes:
|
10
10
|
|
@@ -12,7 +12,7 @@ Therefore, there are three distinct modes:
|
|
12
12
|
2. For countries that have unambiguous IBANs: deconstruct an IBAN into national banking details
|
13
13
|
3. For countries where either of the above is not possible: a pseudo-IBAN as a substitute for the above.
|
14
14
|
|
15
|
-
For storage, you should always try to use the `pseudo_iban`, falling back to `iban` if it not available.
|
15
|
+
For storage, you should always try to use the `pseudo_iban`, falling back to `iban` if it is not available.
|
16
16
|
|
17
17
|
For example:
|
18
18
|
- Sweden does support IBANs (**1.**) but the format is ambiguous due to variable length account numbers so they cannot be deconstructed (**2.**). For persistence, we therefore recommend using pseudo-IBANs (**3.**) because the national banking details can be recovered from them.
|
@@ -129,7 +129,7 @@ end
|
|
129
129
|
Ibandit.modulus_checker = ModulusChecker
|
130
130
|
```
|
131
131
|
|
132
|
-
All three the `valid_bank_code?`, `valid_branch_code?` and `valid_account_number?` methods will receive an `IBAN` object.
|
132
|
+
All three of the `valid_bank_code?`, `valid_branch_code?` and `valid_account_number?` methods will receive an `IBAN` object.
|
133
133
|
`valid_bank_code?` and `valid_branch_code?` should return true unless it is known that the bank/branch code in this IBAN
|
134
134
|
are invalid in the country specified. `valid_account_number?` should return true unless it is known that the account number
|
135
135
|
in this IBAN cannot be valid due to local modulus checking rules.
|
@@ -137,7 +137,7 @@ in this IBAN cannot be valid due to local modulus checking rules.
|
|
137
137
|
### Deconstructing an IBAN into national banking details
|
138
138
|
|
139
139
|
SWIFT define the following components for IBANs, and publish details of how each
|
140
|
-
|
140
|
+
country combines them:
|
141
141
|
|
142
142
|
`country_code`
|
143
143
|
: The [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) country code prefix
|
data/bin/build_structure_file.rb
CHANGED
@@ -154,7 +154,7 @@ if __FILE__ == $PROGRAM_NAME
|
|
154
154
|
)
|
155
155
|
|
156
156
|
structure_additions = YAML.safe_load(
|
157
|
-
|
157
|
+
File.read(File.expand_path("../data/raw/structure_additions.yml", __dir__)),
|
158
158
|
permitted_classes: [Range, Symbol],
|
159
159
|
)
|
160
160
|
|
data/data/german_iban_rules.yml
CHANGED
@@ -17,6 +17,9 @@
|
|
17
17
|
'10010500':
|
18
18
|
:check_digit_rule: '09'
|
19
19
|
:iban_rule: '000000'
|
20
|
+
'10010700':
|
21
|
+
:check_digit_rule: '09'
|
22
|
+
:iban_rule: '000000'
|
20
23
|
'10011001':
|
21
24
|
:check_digit_rule: '09'
|
22
25
|
:iban_rule: '000000'
|
@@ -218,9 +221,6 @@
|
|
218
221
|
'10120100':
|
219
222
|
:check_digit_rule: '94'
|
220
223
|
:iban_rule: '000000'
|
221
|
-
'10120800':
|
222
|
-
:check_digit_rule: '09'
|
223
|
-
:iban_rule: '004800'
|
224
224
|
'10130600':
|
225
225
|
:check_digit_rule: '06'
|
226
226
|
:iban_rule: '000000'
|
@@ -1664,9 +1664,6 @@
|
|
1664
1664
|
'25690009':
|
1665
1665
|
:check_digit_rule: '28'
|
1666
1666
|
:iban_rule: '000000'
|
1667
|
-
'25690010':
|
1668
|
-
:check_digit_rule: '28'
|
1669
|
-
:iban_rule: '000000'
|
1670
1667
|
'25691633':
|
1671
1668
|
:check_digit_rule: '28'
|
1672
1669
|
:iban_rule: '000000'
|
@@ -1802,9 +1799,6 @@
|
|
1802
1799
|
'26251425':
|
1803
1800
|
:check_digit_rule: '00'
|
1804
1801
|
:iban_rule: '000000'
|
1805
|
-
'26261396':
|
1806
|
-
:check_digit_rule: '28'
|
1807
|
-
:iban_rule: '000000'
|
1808
1802
|
'26261492':
|
1809
1803
|
:check_digit_rule: '28'
|
1810
1804
|
:iban_rule: '000000'
|
@@ -1985,9 +1979,6 @@
|
|
1985
1979
|
'26991066':
|
1986
1980
|
:check_digit_rule: '50'
|
1987
1981
|
:iban_rule: '000000'
|
1988
|
-
'27010200':
|
1989
|
-
:check_digit_rule: '09'
|
1990
|
-
:iban_rule: '004800'
|
1991
1982
|
'27020000':
|
1992
1983
|
:check_digit_rule: D8
|
1993
1984
|
:iban_rule: '000000'
|
@@ -2252,9 +2243,6 @@
|
|
2252
2243
|
'28069926':
|
2253
2244
|
:check_digit_rule: '28'
|
2254
2245
|
:iban_rule: '000000'
|
2255
|
-
'28069930':
|
2256
|
-
:check_digit_rule: '28'
|
2257
|
-
:iban_rule: '000000'
|
2258
2246
|
'28069935':
|
2259
2247
|
:check_digit_rule: '28'
|
2260
2248
|
:iban_rule: '000000'
|
@@ -2540,9 +2528,6 @@
|
|
2540
2528
|
'30022000':
|
2541
2529
|
:check_digit_rule: '08'
|
2542
2530
|
:iban_rule: '000000'
|
2543
|
-
'30025500':
|
2544
|
-
:check_digit_rule: '08'
|
2545
|
-
:iban_rule: '000000'
|
2546
2531
|
'30030100':
|
2547
2532
|
:check_digit_rule: '56'
|
2548
2533
|
:iban_rule: '000000'
|
@@ -3035,9 +3020,6 @@
|
|
3035
3020
|
'36010043':
|
3036
3021
|
:check_digit_rule: '24'
|
3037
3022
|
:iban_rule: '000000'
|
3038
|
-
'36010200':
|
3039
|
-
:check_digit_rule: '09'
|
3040
|
-
:iban_rule: '000000'
|
3041
3023
|
'36010424':
|
3042
3024
|
:check_digit_rule: '09'
|
3043
3025
|
:iban_rule: '000000'
|
@@ -4355,9 +4337,6 @@
|
|
4355
4337
|
'47262703':
|
4356
4338
|
:check_digit_rule: '34'
|
4357
4339
|
:iban_rule: '000000'
|
4358
|
-
'47263472':
|
4359
|
-
:check_digit_rule: '34'
|
4360
|
-
:iban_rule: '000000'
|
4361
4340
|
'47264367':
|
4362
4341
|
:check_digit_rule: '34'
|
4363
4342
|
:iban_rule: '000000'
|
@@ -4427,9 +4406,6 @@
|
|
4427
4406
|
'47861518':
|
4428
4407
|
:check_digit_rule: '34'
|
4429
4408
|
:iban_rule: '000000'
|
4430
|
-
'47861806':
|
4431
|
-
:check_digit_rule: '34'
|
4432
|
-
:iban_rule: '000000'
|
4433
4409
|
'47862261':
|
4434
4410
|
:check_digit_rule: '34'
|
4435
4411
|
:iban_rule: '000000'
|
@@ -4449,7 +4425,7 @@
|
|
4449
4425
|
:check_digit_rule: '99'
|
4450
4426
|
:iban_rule: '003200'
|
4451
4427
|
'48020151':
|
4452
|
-
:check_digit_rule: '
|
4428
|
+
:check_digit_rule: '09'
|
4453
4429
|
:iban_rule: '000000'
|
4454
4430
|
'48021900':
|
4455
4431
|
:check_digit_rule: '34'
|
@@ -5049,7 +5025,7 @@
|
|
5049
5025
|
:check_digit_rule: '09'
|
5050
5026
|
:iban_rule: '000000'
|
5051
5027
|
'50131000':
|
5052
|
-
:check_digit_rule:
|
5028
|
+
:check_digit_rule: '09'
|
5053
5029
|
:iban_rule: '000000'
|
5054
5030
|
'50190000':
|
5055
5031
|
:check_digit_rule: '06'
|
@@ -5138,9 +5114,6 @@
|
|
5138
5114
|
'50324000':
|
5139
5115
|
:check_digit_rule: '31'
|
5140
5116
|
:iban_rule: '000000'
|
5141
|
-
'50324040':
|
5142
|
-
:check_digit_rule: '31'
|
5143
|
-
:iban_rule: '000000'
|
5144
5117
|
'50330000':
|
5145
5118
|
:check_digit_rule: '06'
|
5146
5119
|
:iban_rule: '000000'
|
@@ -5162,6 +5135,9 @@
|
|
5162
5135
|
'50334400':
|
5163
5136
|
:check_digit_rule: '09'
|
5164
5137
|
:iban_rule: '000000'
|
5138
|
+
'50339900':
|
5139
|
+
:check_digit_rule: '09'
|
5140
|
+
:iban_rule: '000000'
|
5165
5141
|
'50400000':
|
5166
5142
|
:check_digit_rule: '09'
|
5167
5143
|
:iban_rule: '004201'
|
@@ -5519,18 +5495,6 @@
|
|
5519
5495
|
'51230600':
|
5520
5496
|
:check_digit_rule: '09'
|
5521
5497
|
:iban_rule: '000000'
|
5522
|
-
'51230800':
|
5523
|
-
:check_digit_rule: '09'
|
5524
|
-
:iban_rule: '000000'
|
5525
|
-
'51230801':
|
5526
|
-
:check_digit_rule: '09'
|
5527
|
-
:iban_rule: '000000'
|
5528
|
-
'51230802':
|
5529
|
-
:check_digit_rule: '09'
|
5530
|
-
:iban_rule: '000000'
|
5531
|
-
'51230805':
|
5532
|
-
:check_digit_rule: '09'
|
5533
|
-
:iban_rule: '000000'
|
5534
5498
|
'51250000':
|
5535
5499
|
:check_digit_rule: '06'
|
5536
5500
|
:iban_rule: '000000'
|
@@ -5585,12 +5549,12 @@
|
|
5585
5549
|
'51420300':
|
5586
5550
|
:check_digit_rule: '17'
|
5587
5551
|
:iban_rule: '000000'
|
5588
|
-
'51420600':
|
5589
|
-
:check_digit_rule: '09'
|
5590
|
-
:iban_rule: '000000'
|
5591
5552
|
'51430400':
|
5592
5553
|
:check_digit_rule: '09'
|
5593
5554
|
:iban_rule: '000100'
|
5555
|
+
'51430410':
|
5556
|
+
:check_digit_rule: '09'
|
5557
|
+
:iban_rule: '000000'
|
5594
5558
|
'51432100':
|
5595
5559
|
:check_digit_rule: '09'
|
5596
5560
|
:iban_rule: '000000'
|
@@ -5711,9 +5675,6 @@
|
|
5711
5675
|
'52064156':
|
5712
5676
|
:check_digit_rule: '32'
|
5713
5677
|
:iban_rule: '000000'
|
5714
|
-
'52065220':
|
5715
|
-
:check_digit_rule: '32'
|
5716
|
-
:iban_rule: '000000'
|
5717
5678
|
'52069013':
|
5718
5679
|
:check_digit_rule: '32'
|
5719
5680
|
:iban_rule: '000000'
|
@@ -6183,7 +6144,7 @@
|
|
6183
6144
|
:check_digit_rule: '13'
|
6184
6145
|
:iban_rule: '000503'
|
6185
6146
|
'55350010':
|
6186
|
-
:check_digit_rule:
|
6147
|
+
:check_digit_rule: A7
|
6187
6148
|
:iban_rule: '000000'
|
6188
6149
|
'55361202':
|
6189
6150
|
:check_digit_rule: '32'
|
@@ -6743,9 +6704,6 @@
|
|
6743
6704
|
'60020290':
|
6744
6705
|
:check_digit_rule: '99'
|
6745
6706
|
:iban_rule: '003400'
|
6746
|
-
'60020300':
|
6747
|
-
:check_digit_rule: '09'
|
6748
|
-
:iban_rule: '004800'
|
6749
6707
|
'60030000':
|
6750
6708
|
:check_digit_rule: A3
|
6751
6709
|
:iban_rule: '000000'
|
@@ -6833,9 +6791,6 @@
|
|
6833
6791
|
'60069224':
|
6834
6792
|
:check_digit_rule: '10'
|
6835
6793
|
:iban_rule: '000000'
|
6836
|
-
'60069235':
|
6837
|
-
:check_digit_rule: '10'
|
6838
|
-
:iban_rule: '000100'
|
6839
6794
|
'60069239':
|
6840
6795
|
:check_digit_rule: '10'
|
6841
6796
|
:iban_rule: '000000'
|
@@ -7160,9 +7115,6 @@
|
|
7160
7115
|
'60391420':
|
7161
7116
|
:check_digit_rule: '10'
|
7162
7117
|
:iban_rule: '000000'
|
7163
|
-
'60410600':
|
7164
|
-
:check_digit_rule: '09'
|
7165
|
-
:iban_rule: '000000'
|
7166
7118
|
'60420000':
|
7167
7119
|
:check_digit_rule: '06'
|
7168
7120
|
:iban_rule: '000000'
|
@@ -7517,9 +7469,6 @@
|
|
7517
7469
|
'64191030':
|
7518
7470
|
:check_digit_rule: '10'
|
7519
7471
|
:iban_rule: '000000'
|
7520
|
-
'64191210':
|
7521
|
-
:check_digit_rule: '10'
|
7522
|
-
:iban_rule: '000100'
|
7523
7472
|
'64191700':
|
7524
7473
|
:check_digit_rule: '10'
|
7525
7474
|
:iban_rule: '000000'
|
@@ -9992,9 +9941,6 @@
|
|
9992
9941
|
'79050000':
|
9993
9942
|
:check_digit_rule: '00'
|
9994
9943
|
:iban_rule: '000000'
|
9995
|
-
'79061000':
|
9996
|
-
:check_digit_rule: '88'
|
9997
|
-
:iban_rule: '000000'
|
9998
9944
|
'79062106':
|
9999
9945
|
:check_digit_rule: '88'
|
10000
9946
|
:iban_rule: '000000'
|
@@ -10031,9 +9977,6 @@
|
|
10031
9977
|
'79069213':
|
10032
9978
|
:check_digit_rule: '88'
|
10033
9979
|
:iban_rule: '000000'
|
10034
|
-
'79069271':
|
10035
|
-
:check_digit_rule: '88'
|
10036
|
-
:iban_rule: '000000'
|
10037
9980
|
'79070016':
|
10038
9981
|
:check_digit_rule: '63'
|
10039
9982
|
:iban_rule: '002002'
|