ibandit 0.6.1 → 0.6.2

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
  SHA1:
3
- metadata.gz: b6b28e164036f1f3d80a9e52b12af42cc8452a37
4
- data.tar.gz: 4e9aa3c2e839cbc7ba9e133c8f4151fe90f19dfb
3
+ metadata.gz: d371335a59f94320ee6d0d47b0387e3e240b48d9
4
+ data.tar.gz: a340177bde1374d3b6cea5fec8450560978d87d1
5
5
  SHA512:
6
- metadata.gz: 7dd754b8daf06d399f2332c2ad55bfb57a1630708567ba3e08d96f68c33040faf46feb2ce0732e569cde3ec3e92f8c9b0137246ba79ae3978165bf7f85405340
7
- data.tar.gz: ce8aa651ef4e7d42c92f9a5f75863cd8f0141064ca79ec4a450a0a1207f12e5e169fac46cf8cf4bc1c4d71fbf2df3ee7d0df6199506fcd122ce5c0f8913d7368
6
+ metadata.gz: 65c97889796f5c1e7b14b60da0e7d8a16fc750e5d9d8879d5722d5a86ef7cdb9666481ed07e66b32f04ed75c8de8dcdfa1e30a3b87a9b844ae9edc7bac184b19
7
+ data.tar.gz: 7e0cfce671a59389f8d254dcd5c35d4c1f75af538ba070bf050eee0153cc891eecffe21a51a120400980f00fff23c57579db7b50a6382debd2b711a100626cfb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.6.2 - July 21, 2015
2
+
3
+ - Add Denmark to LocalDetailsCleaner and IBANAssembler
4
+
1
5
  ## 0.6.1 - July 21, 2015
2
6
 
3
7
  - Add Norway to LocalDetailsCleaner and IBANAssembler
data/README.md CHANGED
@@ -191,6 +191,13 @@ iban = Ibandit::IBAN.new(
191
191
  )
192
192
  iban.iban # => "DE89370400440532013000"
193
193
 
194
+ # Denmark
195
+ iban = Ibandit::IBAN.new(
196
+ country_code: 'DK',
197
+ account_number: '345-3179681',
198
+ )
199
+ iban.iban # => "DK8003450003179681"
200
+
194
201
  # Estonia
195
202
  iban = Ibandit::IBAN.new(
196
203
  country_code: 'EE',
@@ -302,14 +309,6 @@ iban = Ibandit::IBAN.new(
302
309
  iban.iban # => "NL91ABNA0417164300"
303
310
 
304
311
  # Norway
305
- iban = Ibandit::IBAN.new(
306
- country_code: 'NO',
307
- account_number: '1117947',
308
- bank_code: '8601'
309
- )
310
- iban.iban # => "NO9386011117947"
311
-
312
- # Norway with 11 digit account number
313
312
  iban = Ibandit::IBAN.new(
314
313
  country_code: 'NO',
315
314
  account_number: '8601.1117947',
@@ -1,7 +1,7 @@
1
1
  module Ibandit
2
2
  module IBANAssembler
3
- SUPPORTED_COUNTRY_CODES = %w(AT BE CY DE EE ES FI FR GB GR IE IT LT LU LV MC
4
- MT NL NO PT SE SI SK SM).freeze
3
+ SUPPORTED_COUNTRY_CODES = %w(AT BE CY DE DK EE ES FI FR GB GR IE IT LT LU LV
4
+ MC MT NL NO PT SE SI SK SM).freeze
5
5
 
6
6
  EXCEPTION_COUNTRY_CODES = %w(IT SM BE).freeze
7
7
 
@@ -84,7 +84,7 @@ module Ibandit
84
84
 
85
85
  def self.required_fields(country_code)
86
86
  case country_code
87
- when *%w(AT CY DE EE FI LT LU LV NL NO SE SI SK)
87
+ when *%w(AT CY DE EE FI LT LU LV NL NO SE SI SK DK)
88
88
  %i(bank_code account_number)
89
89
  when 'BE'
90
90
  %i(account_number)
@@ -1,7 +1,7 @@
1
1
  module Ibandit
2
2
  module LocalDetailsCleaner
3
- SUPPORTED_COUNTRY_CODES = %w(AT BE CY DE EE ES FI FR GB GR IE IT LT LU LV MC
4
- MT NL NO PT SE SI SK SM).freeze
3
+ SUPPORTED_COUNTRY_CODES = %w(AT BE CY DE DK EE ES FI FR GB GR IE IT LT LU LV
4
+ MC MT NL NO PT SE SI SK SM).freeze
5
5
 
6
6
  def self.clean(local_details)
7
7
  country_code = local_details[:country_code]
@@ -29,7 +29,7 @@ module Ibandit
29
29
  case country_code
30
30
  when 'AT', 'CY', 'DE', 'FI', 'LT', 'LU', 'LV', 'NL', 'SI', 'SK'
31
31
  %i(bank_code account_number)
32
- when 'BE', 'EE', 'ES', 'SE', 'NO'
32
+ when 'BE', 'EE', 'ES', 'SE', 'NO', 'DK'
33
33
  %i(account_number)
34
34
  when 'GB', 'IE', 'MT'
35
35
  if Ibandit.bic_finder.nil? then %i(bank_code branch_code account_number)
@@ -111,6 +111,22 @@ module Ibandit
111
111
  }
112
112
  end
113
113
 
114
+ def self.clean_dk_details(local_details)
115
+ # This method supports being passed the component IBAN parts, as defined
116
+ # by SWIFT, or a single traditional-format string split by a '-'.
117
+ if local_details[:bank_code]
118
+ bank_code = local_details[:bank_code].rjust(4, '0')
119
+ account_number = local_details[:account_number].rjust(10, '0')
120
+ else
121
+ bank_code, account_number = local_details[:account_number].split('-', 2)
122
+ end
123
+
124
+ {
125
+ bank_code: bank_code.rjust(4, '0'),
126
+ account_number: account_number.rjust(10, '0')
127
+ }
128
+ end
129
+
114
130
  def self.clean_ee_details(local_details)
115
131
  # Account number may be up to 14 characters long.
116
132
  # Add leading zeros to account number if < 14 digits.
@@ -1,3 +1,3 @@
1
1
  module Ibandit
2
- VERSION = '0.6.1'.freeze
2
+ VERSION = '0.6.2'.freeze
3
3
  end
@@ -120,6 +120,28 @@ describe Ibandit::IBANAssembler do
120
120
  end
121
121
  end
122
122
 
123
+ context 'with DK as the country_code' do
124
+ let(:args) do
125
+ { country_code: 'DK',
126
+ bank_code: '1199',
127
+ account_number: '0003179680' }
128
+ end
129
+
130
+ it { is_expected.to eq('DK2411990003179680') }
131
+
132
+ it_behaves_like 'allows round trips', 'DK24 1199 0003 1796 80'
133
+
134
+ context 'without a bank_code' do
135
+ before { args.delete(:bank_code) }
136
+ it { is_expected.to be_nil }
137
+ end
138
+
139
+ context 'without an account_number' do
140
+ before { args.delete(:account_number) }
141
+ it { is_expected.to be_nil }
142
+ end
143
+ end
144
+
123
145
  context 'with EE as the country_code' do
124
146
  let(:args) do
125
147
  {
@@ -164,6 +164,29 @@ describe Ibandit::LocalDetailsCleaner do
164
164
  end
165
165
  end
166
166
 
167
+ context 'Denmark' do
168
+ let(:country_code) { 'DK' }
169
+ let(:bank_code) { '40' }
170
+ let(:account_number) { '440116243' }
171
+
172
+ its([:bank_code]) { is_expected.to eq('0040') }
173
+ its([:account_number]) { is_expected.to eq('0440116243') }
174
+
175
+ context 'with bank and branch codes in the account number' do
176
+ let(:bank_code) { nil }
177
+ let(:branch_code) { nil }
178
+ let(:account_number) { '345-3179681' }
179
+
180
+ its([:bank_code]) { is_expected.to eq('0345') }
181
+ its([:account_number]) { is_expected.to eq('0003179681') }
182
+ end
183
+
184
+ context 'without an account number' do
185
+ let(:account_number) { nil }
186
+ it { is_expected.to eq(local_details) }
187
+ end
188
+ end
189
+
167
190
  context 'Estonia' do
168
191
  let(:country_code) { 'EE' }
169
192
  let(:account_number) { '0221020145685' }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibandit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grey Baker