ibandit 1.23.0 → 1.24.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f204241b08b7d0ea68f567e7a19732be27c58f5a0f7a275ee3c6fb053435e382
4
- data.tar.gz: 1e38162054ba85caea8f21aec08545f7ea0906475911ff3e08d5300b6aa1f1d8
3
+ metadata.gz: 6f8f92719cd4de9683bfd0c36a84550b67a0ab89f99ae760f6f2105f9b5ddd62
4
+ data.tar.gz: 0b1e3547051b10705bfbc75e924611875170b2324085f1db509060ec84c59890
5
5
  SHA512:
6
- metadata.gz: 813b2693616e4479ff87b66e9e6818fced084999f4082a2df05eb66d024e19693f3cecda440c138e706d0e2798950d957cf88d18a2b39565f13544263b9863b5
7
- data.tar.gz: 277e44e26604e9ae6b4708c43e8d153e9ef2fdd73a38a0dec2babdf30c1d6ecab917786d13aacccfb6e70ad654097ac6976bada55aa23c4282c5d862efa21c00
6
+ metadata.gz: b368ac91d2fa12f4691a165b0de4150a23e8c5a0a14b04b9ac17d4cc496d594a9cbf0308fec594afccbfed262bb8557bceabfe1a453c11df5e24093fa970783a
7
+ data.tar.gz: 591482c2f7f33c37515214084c708a061cedce5d0575f20a1fd63bc642b53b7a3a223785640ae7b8736a40ee9de5a0ab30828b0b2d4c27e40f5187f2f38ecfb7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.24.0 - February 18, 2025
2
+
3
+ - Fix validation for SE IBANs where the account number starts with a 0 and the clearing number is not included in the IBAN
4
+
1
5
  ## 1.23.0 - February 14, 2025
2
6
 
3
7
  - Fix validation for SE IBANs for clearing code 3300 where the account number starts with a 0
@@ -85,7 +85,7 @@
85
85
  :bank_code: 300
86
86
  :clearing_code_length: 4
87
87
  :serial_number_length: 10
88
- :zerofill_serial_number: true
88
+ :zerofill_serial_number: false
89
89
  :include_clearing_code: false
90
90
  :validation_scheme: '2.1'
91
91
  - :range: [3301, 3399]
@@ -64,7 +64,7 @@ module Ibandit
64
64
  length += bank[:clearing_code_length] if bank[:include_clearing_code]
65
65
 
66
66
  cleaned_account_number = account_number.gsub(/\A0+/, "")
67
- if bank[:zerofill_serial_number] && !bank[:include_clearing_code]
67
+ if !bank[:include_clearing_code]
68
68
  cleaned_account_number =
69
69
  cleaned_account_number.
70
70
  rjust(bank.fetch(:serial_number_length), "0")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ibandit
4
- VERSION = "1.23.0"
4
+ VERSION = "1.24.0"
5
5
  end
@@ -183,6 +183,74 @@ describe Ibandit::IBAN do
183
183
  its(:iban) { is_expected.to eq("SE5412000000012810105723") }
184
184
  its(:pseudo_iban) { is_expected.to eq("SEZZX1281XXX0105723") }
185
185
  its(:to_s) { is_expected.to eq("SE5412000000012810105723") }
186
+
187
+ context "and the clearing code is not part of the IBAN" do
188
+ context "and the branch code allows for zero-filling of short account numbers" do
189
+ let(:arg) do
190
+ {
191
+ country_code: "SE",
192
+ branch_code: "6000",
193
+ account_number: "1234567",
194
+ }
195
+ end
196
+
197
+ its(:country_code) { is_expected.to eq("SE") }
198
+ its(:bank_code) { is_expected.to be_nil }
199
+ its(:branch_code) { is_expected.to eq("6000") }
200
+ its(:account_number) { is_expected.to eq("001234567") }
201
+ its(:swift_bank_code) { is_expected.to eq("600") }
202
+ its(:swift_branch_code) { is_expected.to be_nil }
203
+ its(:swift_account_number) { is_expected.to eq("00000000001234567") }
204
+ its(:iban) { is_expected.to eq("SE2260000000000001234567") }
205
+ its(:pseudo_iban) { is_expected.to eq("SEZZX6000X001234567") }
206
+ its(:to_s) { is_expected.to eq("SE2260000000000001234567") }
207
+ its(:valid?) { is_expected.to eq(true) }
208
+ end
209
+
210
+ context "and the branch code does not allow for zero-filling of short account numbers" do
211
+ let(:arg) do
212
+ {
213
+ country_code: "SE",
214
+ branch_code: "3300",
215
+ account_number: "1234567",
216
+ }
217
+ end
218
+
219
+ its(:country_code) { is_expected.to eq("SE") }
220
+ its(:bank_code) { is_expected.to be_nil }
221
+ its(:branch_code) { is_expected.to eq("3300") }
222
+ its(:account_number) { is_expected.to eq("1234567") }
223
+ its(:swift_bank_code) { is_expected.to eq("300") }
224
+ its(:swift_branch_code) { is_expected.to be_nil }
225
+ its(:swift_account_number) { is_expected.to eq("00000000001234567") }
226
+ its(:iban) { is_expected.to eq("SE4130000000000001234567") }
227
+ its(:pseudo_iban) { is_expected.to eq("SEZZX3300XXX1234567") }
228
+ its(:to_s) { is_expected.to eq("SE4130000000000001234567") }
229
+ its(:valid?) { is_expected.to eq(false) }
230
+ end
231
+ end
232
+
233
+ context "and the clearing code is part of the IBAN" do
234
+ let(:arg) do
235
+ {
236
+ country_code: "SE",
237
+ branch_code: "3410",
238
+ account_number: "1234567",
239
+ }
240
+ end
241
+
242
+ its(:country_code) { is_expected.to eq("SE") }
243
+ its(:bank_code) { is_expected.to be_nil }
244
+ its(:branch_code) { is_expected.to eq("3410") }
245
+ its(:account_number) { is_expected.to eq("1234567") }
246
+ its(:swift_bank_code) { is_expected.to eq("300") }
247
+ its(:swift_branch_code) { is_expected.to be_nil }
248
+ its(:swift_account_number) { is_expected.to eq("00000034101234567") }
249
+ its(:iban) { is_expected.to eq("SE1030000000034101234567") }
250
+ its(:pseudo_iban) { is_expected.to eq("SEZZX3410XXX1234567") }
251
+ its(:to_s) { is_expected.to eq("SE1030000000034101234567") }
252
+ its(:valid?) { is_expected.to eq(true) }
253
+ end
186
254
  end
187
255
 
188
256
  context "when the IBAN was created from a pseudo-IBAN" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibandit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.23.0
4
+ version: 1.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GoCardless
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-02-14 00:00:00.000000000 Z
10
+ date: 2025-02-18 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: i18n