ibandit 1.8.0 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 [![CircleCI](https://circleci.com/gh/gocardless/business.svg?style=svg)]
|
|
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'
|