ibandit 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/ibandit.gemspec CHANGED
@@ -3,13 +3,14 @@
3
3
  require File.expand_path("lib/ibandit/version", __dir__)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
+ gem.add_development_dependency "gc_ruboconfig", "~> 2.12.0"
6
7
  gem.add_development_dependency "nokogiri", "~> 1.6"
7
8
  gem.add_development_dependency "pry", "~> 0.10"
8
9
  gem.add_development_dependency "pry-nav", "~> 0.2"
9
10
  gem.add_development_dependency "rspec", "~> 3.3"
10
11
  gem.add_development_dependency "rspec-its", "~> 1.2"
11
- gem.add_development_dependency "rubocop", "~> 0.75.1"
12
- gem.add_development_dependency "sax-machine", "~> 1.3"
12
+ gem.add_development_dependency "rspec_junit_formatter", "~> 0.4.1"
13
+ gem.add_development_dependency "sax-machine", "~> 1.3"
13
14
 
14
15
  gem.add_runtime_dependency "i18n"
15
16
 
@@ -957,6 +957,23 @@ module Ibandit
957
957
  end
958
958
  end
959
959
 
960
+ # New version of Rule004200 but with another range:
961
+ # For 10-digit Account Numbers, only the following Account Numbers are
962
+ # applicable to be issued / created into an IBAN with the
963
+ # standard-IBAN rule: nnn4400001 to nnn4499999
964
+ class Rule004201 < Rule004200
965
+ def converted_details
966
+ unpadded_account_number = @account_number.gsub(/\A0+/, "")
967
+
968
+ if unpadded_account_number.size == 10 &&
969
+ %w[4400001 4499999].include?(unpadded_account_number.slice(3, 10))
970
+ { bank_code: @bank_code, account_number: @account_number }
971
+ else
972
+ super
973
+ end
974
+ end
975
+ end
976
+
960
977
  class Rule004301 < BaseRule
961
978
  def converted_details
962
979
  { bank_code: "66650085", account_number: @account_number }
@@ -1028,6 +1045,10 @@ module Ibandit
1028
1045
  end
1029
1046
  end
1030
1047
 
1048
+ class Rule004910 < BaseRule
1049
+ # Rule 0049 10 is actually about modulus checking, not IBAN construction
1050
+ end
1051
+
1031
1052
  class Rule005000 < BaseRule
1032
1053
  def converted_details
1033
1054
  { bank_code: "28550000", account_number: @account_number }
data/lib/ibandit/iban.rb CHANGED
@@ -225,7 +225,7 @@ module Ibandit
225
225
  return unless valid_country_code?
226
226
  return unless structure[:bban_format]
227
227
 
228
- if bban =~ Regexp.new(structure[:bban_format])
228
+ if bban&.match?(Regexp.new(structure[:bban_format]))
229
229
  true
230
230
  else
231
231
  @errors[:format] = Ibandit.translate(:invalid_format,
@@ -238,7 +238,7 @@ module Ibandit
238
238
  return unless valid_bank_code_length?
239
239
  return true if structure[:bank_code_length]&.zero?
240
240
 
241
- if swift_bank_code =~ Regexp.new(structure[:bank_code_format])
241
+ if swift_bank_code&.match?(Regexp.new(structure[:bank_code_format]))
242
242
  true
243
243
  else
244
244
  @errors[:bank_code] = Ibandit.translate(:is_invalid)
@@ -250,7 +250,7 @@ module Ibandit
250
250
  return unless valid_branch_code_length?
251
251
  return true unless structure[:branch_code_format]
252
252
 
253
- if swift_branch_code =~ Regexp.new(structure[:branch_code_format])
253
+ if swift_branch_code&.match?(Regexp.new(structure[:branch_code_format]))
254
254
  true
255
255
  else
256
256
  @errors[:branch_code] = Ibandit.translate(:is_invalid)
@@ -261,7 +261,9 @@ module Ibandit
261
261
  def valid_account_number_format?
262
262
  return unless valid_account_number_length?
263
263
 
264
- if swift_account_number =~ Regexp.new(structure[:account_number_format])
264
+ if swift_account_number&.match?(
265
+ Regexp.new(structure[:account_number_format]),
266
+ )
265
267
  true
266
268
  else
267
269
  @errors[:account_number] = Ibandit.translate(:is_invalid)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ibandit
4
- VERSION = "1.0.1"
4
+ VERSION = "1.0.2"
5
5
  end
@@ -22,15 +22,15 @@
22
22
  { "bank_code": "72020700", "account_number" : "1111111611" }
23
23
  ]
24
24
  },
25
- {
26
- "convertor": "000300",
27
- "valid": [
28
- { "bank_code": "51010800", "account_number" : "1" }
29
- ],
30
- "invalid": [
31
- { "bank_code": "51010800", "account_number" : "6161604670" }
32
- ]
33
- },
25
+ // {
26
+ // "convertor": "000300",
27
+ // "valid": [
28
+ // { "bank_code": "51010800", "account_number" : "1" }
29
+ // ],
30
+ // "invalid": [
31
+ // { "bank_code": "51010800", "account_number" : "6161604670" }
32
+ // ]
33
+ // },
34
34
  {
35
35
  "convertor": "000400",
36
36
  "valid": [
@@ -101,12 +101,12 @@
101
101
  {"bank_code":"51020000","account_number":"30009963","converted_bank_code":"50020200","converted_account_number":"30009963"}
102
102
  ]
103
103
  },
104
- {
105
- "convertor": "000900",
106
- "valid": [
107
- {"bank_code":"68351976","account_number":"1116232594","converted_bank_code":"68351557","converted_account_number":"3047232594"}
108
- ]
109
- },
104
+ // {
105
+ // "convertor": "000900",
106
+ // "valid": [
107
+ // {"bank_code":"68351976","account_number":"1116232594","converted_bank_code":"68351557","converted_account_number":"3047232594"}
108
+ // ]
109
+ // },
110
110
  {
111
111
  "convertor": "001001",
112
112
  "valid": [
@@ -160,11 +160,11 @@
160
160
  "valid": [
161
161
  { "bank_code": "39060180", "account_number": "556", "converted_account_number": "0120440110" }
162
162
  ]
163
- },
164
- {
165
- "convertor": "001900",
166
- "valid": [
167
- { "bank_code": "50130100", "account_number": "556", "converted_bank_code": "50120383" }
168
- ]
169
163
  }
164
+ // {
165
+ // "convertor": "001900",
166
+ // "valid": [
167
+ // { "bank_code": "50130100", "account_number": "556", "converted_bank_code": "50120383" }
168
+ // ]
169
+ // }
170
170
  ]
@@ -136,12 +136,12 @@
136
136
  { "bank_code": "10010010", "account_number" : "556", "converted_account_number": "0120440110" }
137
137
  ]
138
138
  },
139
- {
140
- "convertor": "001900",
141
- "valid": [
142
- { "bank_code": "10010010", "account_number" : "1234567890", "converted_bank_code": "50120383" }
143
- ]
144
- },
139
+ // {
140
+ // "convertor": "001900",
141
+ // "valid": [
142
+ // { "bank_code": "10010010", "account_number" : "1234567890", "converted_bank_code": "50120383" }
143
+ // ]
144
+ // },
145
145
  {
146
146
  "convertor": "002002",
147
147
  "valid": [
@@ -318,6 +318,20 @@
318
318
  { "bank_code": "10010010", "account_number" : "0040400000" },
319
319
  { "bank_code": "10010010", "account_number" : "0040412000" }
320
320
  ]
321
+ },
322
+ {
323
+ "convertor": "004201",
324
+ "valid": [
325
+ { "bank_code": "10010010", "account_number" : "0050462000" },
326
+ { "bank_code": "70020001", "account_number" : "0040402000" },
327
+ { "bank_code": "70020001", "account_number" : "1004400001" }
328
+ ],
329
+ "invalid": [
330
+ { "bank_code": "10010010", "account_number" : "504620001" },
331
+ { "bank_code": "10010010", "account_number" : "0040400000" },
332
+ { "bank_code": "10010010", "account_number" : "0040412000" },
333
+ { "bank_code": "70020001", "account_number" : "1035400001" }
334
+ ]
321
335
  },
322
336
  {
323
337
  "convertor": "004301",
@@ -286,7 +286,7 @@ describe Ibandit::LocalDetailsCleaner do
286
286
 
287
287
  context "with unsupported account details" do
288
288
  let(:account_number) { "7955791111" }
289
- let(:bank_code) { "20000000" }
289
+ let(:bank_code) { "99999999" }
290
290
 
291
291
  it { is_expected.to eq(local_details_with_swift) }
292
292
  end
@@ -9,7 +9,7 @@ describe "structures.yml" do
9
9
  structures.each do |country, rules|
10
10
  context country do
11
11
  rules.each do |rule, value|
12
- next unless rule =~ /_format$/
12
+ next unless rule.to_s.end_with?("_format")
13
13
 
14
14
  it "builds #{rule} rule" do
15
15
  expect { Regexp.new(value) }.to_not raise_exception
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibandit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - GoCardless
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-09 00:00:00.000000000 Z
11
+ date: 2020-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gc_ruboconfig
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.12.0
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.12.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: nokogiri
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -81,19 +95,19 @@ dependencies:
81
95
  - !ruby/object:Gem::Version
82
96
  version: '1.2'
83
97
  - !ruby/object:Gem::Dependency
84
- name: rubocop
98
+ name: rspec_junit_formatter
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.75.1
103
+ version: 0.4.1
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 0.75.1
110
+ version: 0.4.1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: sax-machine
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -131,10 +145,10 @@ executables: []
131
145
  extensions: []
132
146
  extra_rdoc_files: []
133
147
  files:
148
+ - ".circleci/config.yml"
134
149
  - ".gitignore"
135
150
  - ".rubocop.yml"
136
151
  - ".rubocop_todo.yml"
137
- - ".travis.yml"
138
152
  - CHANGELOG.md
139
153
  - Gemfile
140
154
  - LICENSE
@@ -209,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
223
  - !ruby/object:Gem::Version
210
224
  version: '0'
211
225
  requirements: []
212
- rubygems_version: 3.1.2
226
+ rubygems_version: 3.0.3
213
227
  signing_key:
214
228
  specification_version: 4
215
229
  summary: Convert national banking details into IBANs, and vice-versa.
data/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- language: ruby
2
-
3
- matrix:
4
- allow_failures:
5
-
6
- rvm:
7
- - 2.4
8
- - 2.5
9
- - 2.6
10
- - 2.7
11
-
12
- sudo: false
13
-
14
- script:
15
- - bundle exec rubocop
16
- - bundle exec rspec spec