ibandit 0.11.9 → 0.11.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f58a9db43e26404863fa70cc4bc0bec905739268
4
- data.tar.gz: 3011d666acf4c4c777cc6a3da0dec1d06bfe359f
3
+ metadata.gz: a9a33af92874b7a40f4a8696b7cd25eb59590094
4
+ data.tar.gz: 3cdd502edd0f62bc40119f3863b8711a21bd6669
5
5
  SHA512:
6
- metadata.gz: 4f005ab73a2ff0e9ae0de0572c74bf828ced25cb30f57cf7bb9685f9ecdac27115dadbd3fb4e992c2bc9e6016eb5e235128985005496407ff8e1438aa78d1bb2
7
- data.tar.gz: 8b8b871a7c71c6e145842c86ea18643b3e6cd2bbeed58ee3c9e8c3a7b152bfd64144b1ccffbceccd1975511eee644dd16ae243e334eea1961ce3472cfb9ecbe5
6
+ metadata.gz: 062edcac1e201a30ea007c6dacf131d611fd679bf74c711d290ea18e91246c933cd4cc55a9e523c9bbdd810aa6dcde80b11af092adbdcbb110c3d736b3638126
7
+ data.tar.gz: d00da8559f97e04603bed2dac82fc66792bff1ed3d95510f4cfc3d8c0480581dd3f0c13e0b901efc4f1ddce1b0568e7cf119706143f60f25f490b11cc0316e80
@@ -1,3 +1,7 @@
1
+ ## 0.11.10 - February 21, 2018
2
+
3
+ - Fix support for Australian bank accounts
4
+
1
5
  ## 0.11.9 - February 8, 2018
2
6
 
3
7
  - Add support for Australian swift national ids
@@ -52,12 +52,12 @@ AT:
52
52
  AU:
53
53
  :bank_code_length: 0
54
54
  :branch_code_length: 6
55
- :account_number_length: 9
55
+ :account_number_length: 10
56
56
  :branch_code_format: "\\d{6}"
57
- :account_number_format: "\\d{9}"
57
+ :account_number_format: "[A-Z0-9]{10}"
58
58
  :pseudo_iban_bank_code_length: 0
59
59
  :pseudo_iban_branch_code_length: 6
60
- :pseudo_iban_account_number_length: 9
60
+ :pseudo_iban_account_number_length: 10
61
61
  :national_id_length: 6
62
62
  AZ:
63
63
  :bank_code_position: 5
@@ -62,9 +62,15 @@ module Ibandit
62
62
  end
63
63
 
64
64
  def self.clean_au_details(local_details)
65
+ # Account number may be up to 10 digits long.
66
+ # Add leading zeros to account number if < 10 digits.
67
+ #
68
+ # Minimum account_number length is 6
69
+ return {} unless local_details[:account_number].length >= 6
70
+
65
71
  {
66
72
  branch_code: local_details[:branch_code].delete("-"),
67
- account_number: local_details[:account_number],
73
+ account_number: local_details[:account_number].rjust(10, "0"),
68
74
  }
69
75
  end
70
76
 
@@ -1,3 +1,3 @@
1
1
  module Ibandit
2
- VERSION = "0.11.9".freeze
2
+ VERSION = "0.11.10".freeze
3
3
  end
@@ -164,22 +164,60 @@ describe Ibandit::IBAN do
164
164
  {
165
165
  country_code: "AU",
166
166
  branch_code: "123-456",
167
- account_number: "123456789",
167
+ account_number: account_number,
168
168
  }
169
169
  end
170
170
 
171
- its(:country_code) { is_expected.to eq(arg[:country_code]) }
172
- its(:bank_code) { is_expected.to be_nil }
173
- its(:branch_code) { is_expected.to eq("123456") }
174
- its(:account_number) { is_expected.to eq("123456789") }
175
- its(:swift_bank_code) { is_expected.to be_nil }
176
- its(:swift_branch_code) { is_expected.to eq("123456") }
177
- its(:swift_account_number) { is_expected.to eq("123456789") }
178
- its(:swift_national_id) { is_expected.to eq("123456") }
179
- its(:iban) { is_expected.to be_nil }
180
- its(:pseudo_iban) { is_expected.to eq("AUZZ123456123456789") }
181
- its(:valid?) { is_expected.to eq(true) }
182
- its(:to_s) { is_expected.to eq("") }
171
+ context "and a 9 digit account number" do
172
+ let(:account_number) { "123456789" }
173
+
174
+ its(:country_code) { is_expected.to eq("AU") }
175
+ its(:bank_code) { is_expected.to be_nil }
176
+ its(:branch_code) { is_expected.to eq("123456") }
177
+ its(:account_number) { is_expected.to eq("0123456789") }
178
+ its(:swift_bank_code) { is_expected.to be_nil }
179
+ its(:swift_branch_code) { is_expected.to eq("123456") }
180
+ its(:swift_account_number) { is_expected.to eq("0123456789") }
181
+ its(:swift_national_id) { is_expected.to eq("123456") }
182
+ its(:iban) { is_expected.to be_nil }
183
+ its(:pseudo_iban) { is_expected.to eq("AUZZ1234560123456789") }
184
+ its(:valid?) { is_expected.to eq(true) }
185
+ its(:to_s) { is_expected.to eq("") }
186
+ end
187
+
188
+ context "and a 6 digit account number" do
189
+ let(:account_number) { "123456" }
190
+
191
+ its(:country_code) { is_expected.to eq("AU") }
192
+ its(:bank_code) { is_expected.to be_nil }
193
+ its(:branch_code) { is_expected.to eq("123456") }
194
+ its(:account_number) { is_expected.to eq("0000123456") }
195
+ its(:swift_bank_code) { is_expected.to be_nil }
196
+ its(:swift_branch_code) { is_expected.to eq("123456") }
197
+ its(:swift_account_number) { is_expected.to eq("0000123456") }
198
+ its(:swift_national_id) { is_expected.to eq("123456") }
199
+ its(:iban) { is_expected.to be_nil }
200
+ its(:pseudo_iban) { is_expected.to eq("AUZZ1234560000123456") }
201
+ its(:valid?) { is_expected.to eq(true) }
202
+ its(:to_s) { is_expected.to eq("") }
203
+ end
204
+
205
+ context "and a 10 characters alphanumeric account number" do
206
+ let(:account_number) { "AB1234567" }
207
+
208
+ its(:country_code) { is_expected.to eq("AU") }
209
+ its(:bank_code) { is_expected.to be_nil }
210
+ its(:branch_code) { is_expected.to eq("123456") }
211
+ its(:account_number) { is_expected.to eq("0AB1234567") }
212
+ its(:swift_bank_code) { is_expected.to be_nil }
213
+ its(:swift_branch_code) { is_expected.to eq("123456") }
214
+ its(:swift_account_number) { is_expected.to eq("0AB1234567") }
215
+ its(:swift_national_id) { is_expected.to eq("123456") }
216
+ its(:iban) { is_expected.to be_nil }
217
+ its(:pseudo_iban) { is_expected.to eq("AUZZ1234560AB1234567") }
218
+ its(:valid?) { is_expected.to eq(true) }
219
+ its(:to_s) { is_expected.to eq("") }
220
+ end
183
221
  end
184
222
 
185
223
  context "when the IBAN was created from an Australian pseudo-IBAN" do
@@ -188,13 +226,13 @@ describe Ibandit::IBAN do
188
226
  its(:country_code) { is_expected.to eq("AU") }
189
227
  its(:bank_code) { is_expected.to be_nil }
190
228
  its(:branch_code) { is_expected.to eq("123456") }
191
- its(:account_number) { is_expected.to eq("123456789") }
229
+ its(:account_number) { is_expected.to eq("0123456789") }
192
230
  its(:swift_bank_code) { is_expected.to be_nil }
193
231
  its(:swift_branch_code) { is_expected.to eq("123456") }
194
- its(:swift_account_number) { is_expected.to eq("123456789") }
232
+ its(:swift_account_number) { is_expected.to eq("0123456789") }
195
233
  its(:swift_national_id) { is_expected.to eq("123456") }
196
234
  its(:iban) { is_expected.to be_nil }
197
- its(:pseudo_iban) { is_expected.to eq("AUZZ123456123456789") }
235
+ its(:pseudo_iban) { is_expected.to eq("AUZZ1234560123456789") }
198
236
  its(:valid?) { is_expected.to eq(true) }
199
237
  its(:to_s) { is_expected.to eq("") }
200
238
  end
@@ -207,7 +245,7 @@ describe Ibandit::IBAN do
207
245
  it "is invalid and has the correct errors" do
208
246
  expect(subject.valid?).to eq(false)
209
247
  expect(subject.errors).
210
- to eq(account_number: "is the wrong length (should be 9 characters)")
248
+ to eq(account_number: "is the wrong length (should be 10 characters)")
211
249
  end
212
250
  end
213
251
 
@@ -216,12 +254,12 @@ describe Ibandit::IBAN do
216
254
  {
217
255
  country_code: "AU",
218
256
  branch_code: "123-4XX",
219
- account_number: "1234567XX",
257
+ account_number: "123456789:",
220
258
  }
221
259
  end
222
260
 
223
261
  its(:iban) { is_expected.to be_nil }
224
- its(:pseudo_iban) { is_expected.to eq("AUZZ1234XX1234567XX") }
262
+ its(:pseudo_iban) { is_expected.to eq("AUZZ1234XX123456789:") }
225
263
  it "is invalid and has the correct errors" do
226
264
  expect(subject.valid?).to eq(false)
227
265
  expect(subject.errors).to eq(account_number: "is invalid",
@@ -84,7 +84,7 @@ describe Ibandit::LocalDetailsCleaner do
84
84
  let(:branch_code) { "123-456" }
85
85
 
86
86
  its([:country_code]) { is_expected.to eq(country_code) }
87
- its([:account_number]) { is_expected.to eq(account_number) }
87
+ its([:account_number]) { is_expected.to eq("0123456789") }
88
88
  its([:branch_code]) { is_expected.to eq("123456") }
89
89
  end
90
90
 
@@ -92,7 +92,7 @@ describe Ibandit::LocalDetailsCleaner do
92
92
  let(:branch_code) { "123456" }
93
93
 
94
94
  its([:country_code]) { is_expected.to eq(country_code) }
95
- its([:account_number]) { is_expected.to eq(account_number) }
95
+ its([:account_number]) { is_expected.to eq("0123456789") }
96
96
  its([:branch_code]) { is_expected.to eq("123456") }
97
97
  end
98
98
  end
@@ -45,11 +45,11 @@ describe Ibandit::PseudoIBANAssembler do
45
45
  {
46
46
  country_code: "AU",
47
47
  branch_code: "123456",
48
- account_number: "123456789",
48
+ account_number: "A123456789",
49
49
  }
50
50
  end
51
51
 
52
- it { is_expected.to eq("AUZZ123456123456789") }
52
+ it { is_expected.to eq("AUZZ123456A123456789") }
53
53
  end
54
54
 
55
55
  context "without a branch code" do
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: 0.11.9
4
+ version: 0.11.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - GoCardless
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-08 00:00:00.000000000 Z
11
+ date: 2018-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -205,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
205
  version: '0'
206
206
  requirements: []
207
207
  rubyforge_project:
208
- rubygems_version: 2.6.13
208
+ rubygems_version: 2.6.14
209
209
  signing_key:
210
210
  specification_version: 4
211
211
  summary: Convert national banking details into IBANs, and vice-versa.