bank-contact 0.0.4 → 0.0.5
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 +4 -4
- data/lib/bank/bic.rb +13 -12
- data/lib/bank/iban.rb +1 -1
- data/lib/bank/version.rb +1 -1
- data/spec/bic_spec.rb +6 -21
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 956289106e81aeb5209fe45c020dd92ffd1caca7
|
4
|
+
data.tar.gz: 25afd8a545784de7c02bd094b1b34f1e1d44e307
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f26c8171bd9cf7d190e01623c2aac84ada412d0624deb437e08ffbfa9854e69546455a2d5d3760de189e18e7b7dcc45f4a494583a030bd44a2e6016a295922da
|
7
|
+
data.tar.gz: ccdf67e7d84b59d23ffc6611b01829cb924ad5b22ab64addf7a1baecebcbcd9cd6d0180872973ac36444a8fc21ba5035b4d19bab40181a650564b8920479837c
|
data/lib/bank/bic.rb
CHANGED
@@ -2,12 +2,14 @@ require 'bank/validators/bic_validator' if defined? ActiveModel
|
|
2
2
|
|
3
3
|
module Bank
|
4
4
|
class BIC
|
5
|
+
REGEX = /^([A-Z]{4})([A-Z]{2})([A-Z0-9]{2})([A-Z0-9]{3})?$/.freeze
|
6
|
+
|
5
7
|
def self.valid?(code)
|
6
8
|
new(code).valid?
|
7
9
|
end
|
8
10
|
|
9
11
|
def initialize(code)
|
10
|
-
@code = code.to_s.
|
12
|
+
@code = code.to_s.gsub(/\s+/, '').upcase
|
11
13
|
end
|
12
14
|
|
13
15
|
def bank_code
|
@@ -27,7 +29,11 @@ module Bank
|
|
27
29
|
end
|
28
30
|
|
29
31
|
def to_s(formatted=false)
|
30
|
-
formatted ?
|
32
|
+
formatted ? to_formatted_str : @code
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_formatted_str
|
36
|
+
"#{bank_code} #{country_code} #{location_code} #{branch_code}".strip
|
31
37
|
end
|
32
38
|
|
33
39
|
def test?
|
@@ -43,24 +49,19 @@ module Bank
|
|
43
49
|
end
|
44
50
|
|
45
51
|
def valid?
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
def valid_length?
|
50
|
-
@code.length == 8 || @code.length == 11
|
52
|
+
valid_format? && valid_location_code? && valid_branch_code?
|
51
53
|
end
|
52
54
|
|
53
55
|
def valid_format?
|
54
|
-
|
56
|
+
!!@code[REGEX]
|
55
57
|
end
|
56
58
|
|
57
59
|
def valid_location_code?
|
58
|
-
location_code
|
60
|
+
!location_code.start_with?('0', '1') && !location_code.end_with?('O')
|
59
61
|
end
|
60
62
|
|
61
63
|
def valid_branch_code?
|
62
|
-
branch_code.
|
64
|
+
branch_code.empty? || branch_code == 'XXX' || !branch_code.start_with?('X')
|
63
65
|
end
|
64
|
-
|
65
66
|
end
|
66
|
-
end
|
67
|
+
end
|
data/lib/bank/iban.rb
CHANGED
data/lib/bank/version.rb
CHANGED
data/spec/bic_spec.rb
CHANGED
@@ -21,24 +21,6 @@ describe Bank::BIC do
|
|
21
21
|
@bic.branch_code.must_equal 'XXX'
|
22
22
|
end
|
23
23
|
|
24
|
-
[8, 11].each do |len|
|
25
|
-
describe 'x' * len do
|
26
|
-
it 'has a valid length' do
|
27
|
-
Bank::BIC.new('x' * len).valid_length?.must_equal true
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
1.upto(20) do |len|
|
33
|
-
if len != 8 && len != 11
|
34
|
-
describe 'x' * len do
|
35
|
-
it 'has a valid length' do
|
36
|
-
Bank::BIC.new('x' * len).valid_length?.must_equal false
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
24
|
[
|
43
25
|
'UCJAES2MXXX',
|
44
26
|
'ABAGATWWXXX',
|
@@ -46,17 +28,20 @@ describe Bank::BIC do
|
|
46
28
|
].each do |code|
|
47
29
|
describe code do
|
48
30
|
it 'has a valid format' do
|
49
|
-
Bank::BIC.new(code).
|
31
|
+
Bank::BIC.new(code).valid?.must_equal true
|
50
32
|
end
|
51
33
|
end
|
52
34
|
end
|
53
35
|
|
54
36
|
[
|
55
|
-
'12341234'
|
37
|
+
'12341234', # only digits
|
38
|
+
'UCJAES2MXAA', # branch code starts with 'X'
|
39
|
+
'UCJAES2MAA', # too short
|
40
|
+
'UCJAES2M0001' # too long
|
56
41
|
].each do |code|
|
57
42
|
describe code do
|
58
43
|
it 'has an invalid format' do
|
59
|
-
Bank::BIC.new(code).
|
44
|
+
Bank::BIC.new(code).valid?.must_equal false
|
60
45
|
end
|
61
46
|
end
|
62
47
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bank-contact
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
116
116
|
rubyforge_project:
|
117
|
-
rubygems_version: 2.
|
117
|
+
rubygems_version: 2.4.8
|
118
118
|
signing_key:
|
119
119
|
specification_version: 4
|
120
120
|
summary: IBAN + SWIFT/BIC
|