ibandit 1.18.0 → 1.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/data/raw/pseudo_ibans.yml +2 -2
- data/data/structures.yml +2 -2
- data/lib/ibandit/iban.rb +0 -13
- data/lib/ibandit/version.rb +1 -1
- data/spec/ibandit/iban_spec.rb +82 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47171b99a86687a326f6f674684d5faa489f4aef980e623e2f43d3ffdf841d84
|
4
|
+
data.tar.gz: 6074f09b34e39a205fdacabbc1a7376dfec8ac38f2821cbfd1d7ae6a8ba683cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f2ff5eb107524c44c68118315f916d86c7550335bae82747165edbfcf4f11d196b29cd3ec6f130babbf7765866925768dca7b5532357510248e8994e9bca0ae
|
7
|
+
data.tar.gz: 0a66dd61f63feeb8534a6b48de006c64928c6f43bf65463ca8e24ccd412d13aa87fc8b8102a4fb54d5585d70a96df91db50be8117c7c025ac576fb0d033c4909
|
data/CHANGELOG.md
CHANGED
data/data/raw/pseudo_ibans.yml
CHANGED
@@ -7,7 +7,7 @@ AU:
|
|
7
7
|
end: 10
|
8
8
|
excl: false
|
9
9
|
:branch_code_format: "\\d{6}"
|
10
|
-
:account_number_format: "[A-Z0-9]{5,10}"
|
10
|
+
:account_number_format: "(?!0+\\z)[A-Z0-9]{5,10}"
|
11
11
|
:pseudo_iban_bank_code_length: 0
|
12
12
|
:pseudo_iban_branch_code_length: 6
|
13
13
|
:pseudo_iban_account_number_length: 10
|
@@ -21,7 +21,7 @@ CA:
|
|
21
21
|
excl: false
|
22
22
|
:bank_code_format: "\\d{4}"
|
23
23
|
:branch_code_format: "\\d{5}"
|
24
|
-
:account_number_format: "\\d{7,12}"
|
24
|
+
:account_number_format: "(?!0+\\z)\\d{7,12}"
|
25
25
|
:national_id_length: 9
|
26
26
|
:pseudo_iban_bank_code_length: 4
|
27
27
|
:pseudo_iban_branch_code_length: 5
|
data/data/structures.yml
CHANGED
@@ -1487,7 +1487,7 @@ AU:
|
|
1487
1487
|
end: 10
|
1488
1488
|
excl: false
|
1489
1489
|
:branch_code_format: "\\d{6}"
|
1490
|
-
:account_number_format: "[A-Z0-9]{5,10}"
|
1490
|
+
:account_number_format: "(?!0+\\z)[A-Z0-9]{5,10}"
|
1491
1491
|
:pseudo_iban_bank_code_length: 0
|
1492
1492
|
:pseudo_iban_branch_code_length: 6
|
1493
1493
|
:pseudo_iban_account_number_length: 10
|
@@ -1501,7 +1501,7 @@ CA:
|
|
1501
1501
|
excl: false
|
1502
1502
|
:bank_code_format: "\\d{4}"
|
1503
1503
|
:branch_code_format: "\\d{5}"
|
1504
|
-
:account_number_format: "\\d{7,12}"
|
1504
|
+
:account_number_format: "(?!0+\\z)\\d{7,12}"
|
1505
1505
|
:national_id_length: 9
|
1506
1506
|
:pseudo_iban_bank_code_length: 4
|
1507
1507
|
:pseudo_iban_branch_code_length: 5
|
data/lib/ibandit/iban.rb
CHANGED
@@ -386,12 +386,6 @@ module Ibandit
|
|
386
386
|
|
387
387
|
def valid_australian_details?
|
388
388
|
return true unless country_code == "AU"
|
389
|
-
|
390
|
-
bsb_check? && account_number_not_all_zeros?
|
391
|
-
end
|
392
|
-
|
393
|
-
def bsb_check?
|
394
|
-
return true unless country_code == "AU"
|
395
389
|
return true unless Ibandit.modulus_checker
|
396
390
|
|
397
391
|
valid_modulus_check_branch_code?
|
@@ -550,12 +544,5 @@ module Ibandit
|
|
550
544
|
|
551
545
|
input.slice(2, 2) == Constants::PSEUDO_IBAN_CHECK_DIGITS
|
552
546
|
end
|
553
|
-
|
554
|
-
def account_number_not_all_zeros?
|
555
|
-
return true if @swift_account_number.to_s.chars.uniq != ["0"]
|
556
|
-
|
557
|
-
@errors[:account_number] = Ibandit.translate(:is_invalid)
|
558
|
-
false
|
559
|
-
end
|
560
547
|
end
|
561
548
|
end
|
data/lib/ibandit/version.rb
CHANGED
data/spec/ibandit/iban_spec.rb
CHANGED
@@ -491,6 +491,17 @@ describe Ibandit::IBAN do
|
|
491
491
|
its(:valid?) { is_expected.to be false }
|
492
492
|
end
|
493
493
|
|
494
|
+
context "and account number has only zeroes in it" do
|
495
|
+
let(:account_number) { "0000000" }
|
496
|
+
let(:bank_code) { "0036" }
|
497
|
+
|
498
|
+
it "is invalid and has the correct errors" do
|
499
|
+
expect(subject.valid?).to eq(false)
|
500
|
+
expect(subject.errors).
|
501
|
+
to eq(account_number: "format is invalid")
|
502
|
+
end
|
503
|
+
end
|
504
|
+
|
494
505
|
context "and a 12 digit account number" do
|
495
506
|
let(:account_number) { "012345678900" }
|
496
507
|
let(:bank_code) { "0036" }
|
@@ -1662,10 +1673,68 @@ describe Ibandit::IBAN do
|
|
1662
1673
|
end
|
1663
1674
|
end
|
1664
1675
|
|
1665
|
-
describe "#valid?" do
|
1676
|
+
describe "Pseudo IBAN #valid?" do
|
1677
|
+
let(:country_code) { "CA" }
|
1678
|
+
let(:arg) do
|
1679
|
+
{
|
1680
|
+
country_code: country_code,
|
1681
|
+
bank_code: "0036",
|
1682
|
+
branch_code: "00063",
|
1683
|
+
account_number: "1234567",
|
1684
|
+
}
|
1685
|
+
end
|
1686
|
+
|
1687
|
+
describe "validations called" do
|
1688
|
+
after { iban.valid? }
|
1689
|
+
|
1690
|
+
specify { expect(iban).to receive(:valid_pseudo_iban?).at_least(1) }
|
1691
|
+
specify { expect(iban).to receive(:valid_pseudo_iban_check_digits?).at_least(1) }
|
1692
|
+
specify { expect(iban).to receive(:valid_country_code?).at_least(1) }
|
1693
|
+
specify { expect(iban).to receive(:valid_bank_code_length?).at_least(1) }
|
1694
|
+
specify { expect(iban).to receive(:valid_branch_code_length?).at_least(1) }
|
1695
|
+
specify { expect(iban).to receive(:valid_account_number_length?).at_least(1) }
|
1696
|
+
specify { expect(iban).to receive(:valid_bank_code_format?).at_least(1) }
|
1697
|
+
specify { expect(iban).to receive(:valid_branch_code_format?).at_least(1) }
|
1698
|
+
specify { expect(iban).to receive(:valid_account_number_format?).at_least(1) }
|
1699
|
+
specify { expect(iban).to receive(:passes_country_specific_checks?).at_least(1) }
|
1700
|
+
|
1701
|
+
context "SE" do
|
1702
|
+
let(:country_code) { "SE" }
|
1703
|
+
|
1704
|
+
specify { expect(iban).to receive(:valid_swedish_details?).at_least(1) }
|
1705
|
+
end
|
1706
|
+
|
1707
|
+
context "AU" do
|
1708
|
+
let(:country_code) { "AU" }
|
1709
|
+
|
1710
|
+
specify { expect(iban).to receive(:valid_australian_details?).at_least(1) }
|
1711
|
+
end
|
1712
|
+
|
1713
|
+
context "NZ" do
|
1714
|
+
let(:country_code) { "NZ" }
|
1715
|
+
|
1716
|
+
specify { expect(iban).to receive(:valid_nz_details?).at_least(1) }
|
1717
|
+
end
|
1718
|
+
|
1719
|
+
context "CA" do
|
1720
|
+
let(:country_code) { "CA" }
|
1721
|
+
|
1722
|
+
specify { expect(iban).to receive(:valid_ca_details?).at_least(1) }
|
1723
|
+
end
|
1724
|
+
|
1725
|
+
context "US" do
|
1726
|
+
let(:country_code) { "US" }
|
1727
|
+
|
1728
|
+
specify { expect(iban).to receive(:bank_code_passes_checksum_test?).at_least(1) }
|
1729
|
+
end
|
1730
|
+
end
|
1731
|
+
end
|
1732
|
+
|
1733
|
+
describe "IBAN #valid?" do
|
1666
1734
|
describe "validations called" do
|
1667
1735
|
after { iban.valid? }
|
1668
1736
|
|
1737
|
+
specify { expect(iban).to receive(:valid_iban?).at_least(1) }
|
1669
1738
|
specify { expect(iban).to receive(:valid_country_code?).at_least(1) }
|
1670
1739
|
specify { expect(iban).to receive(:valid_characters?).at_least(1) }
|
1671
1740
|
specify { expect(iban).to receive(:valid_check_digits?).at_least(1) }
|
@@ -1697,6 +1766,18 @@ describe Ibandit::IBAN do
|
|
1697
1766
|
it "runs country specific checks" do
|
1698
1767
|
expect(iban).to receive(:passes_country_specific_checks?).at_least(1)
|
1699
1768
|
end
|
1769
|
+
|
1770
|
+
context "DE" do
|
1771
|
+
let(:arg) do
|
1772
|
+
{
|
1773
|
+
country_code: "DE",
|
1774
|
+
bank_code: "20000000",
|
1775
|
+
account_number: "7955791111",
|
1776
|
+
}
|
1777
|
+
end
|
1778
|
+
|
1779
|
+
specify { expect(iban).to receive(:supports_iban_determination?).at_least(1) }
|
1780
|
+
end
|
1700
1781
|
end
|
1701
1782
|
|
1702
1783
|
RSpec.shared_examples "a country's IBAN" do |country_code|
|
metadata
CHANGED
@@ -1,14 +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.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GoCardless
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gc_ruboconfig
|