ibandit 1.0.1 → 1.0.2

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.
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