ifsc 2.0.6 → 2.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -1
- data/CONTRIBUTING.md +2 -0
- data/README.md +40 -2
- data/ifsc.gemspec +2 -2
- data/src/IFSC.json +1 -1
- data/src/banknames.json +123 -117
- data/src/banks.json +3887 -3868
- data/src/custom-sublets.json +4 -1
- data/src/ruby/bank.rb +12 -4
- data/src/ruby/bank.rb.tpl +28 -0
- data/src/ruby/ifsc.rb +8 -1
- data/src/sublet.json +10 -9
- data/tests/ruby/bank_spec.rb +2 -5
- data/tests/ruby/ifsc_spec.rb +8 -10
- metadata +4 -3
data/src/custom-sublets.json
CHANGED
data/src/ruby/bank.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
# The bank.rb file is generated from `bank.rb.tpl` using constants
|
3
|
+
# from banknames.json. Run `make generate-constants` to
|
4
|
+
# update this file
|
3
5
|
module Razorpay
|
4
6
|
module IFSC
|
5
7
|
module Bank
|
@@ -78,6 +80,7 @@ module Razorpay
|
|
78
80
|
APMC = :APMC
|
79
81
|
APMX = :APMX
|
80
82
|
APNX = :APNX
|
83
|
+
APRR = :APRR
|
81
84
|
APRX = :APRX
|
82
85
|
APSX = :APSX
|
83
86
|
ARBL = :ARBL
|
@@ -108,6 +111,7 @@ module Razorpay
|
|
108
111
|
BACX = :BACX
|
109
112
|
BADX = :BADX
|
110
113
|
BAGX = :BAGX
|
114
|
+
BALB = :BALB
|
111
115
|
BALX = :BALX
|
112
116
|
BANX = :BANX
|
113
117
|
BARA = :BARA
|
@@ -118,6 +122,7 @@ module Razorpay
|
|
118
122
|
BAUX = :BAUX
|
119
123
|
BAVX = :BAVX
|
120
124
|
BAWX = :BAWX
|
125
|
+
BBDX = :BBDX
|
121
126
|
BBKM = :BBKM
|
122
127
|
BBLX = :BBLX
|
123
128
|
BBRX = :BBRX
|
@@ -332,6 +337,7 @@ module Razorpay
|
|
332
337
|
DOBX = :DOBX
|
333
338
|
DOHB = :DOHB
|
334
339
|
DRGX = :DRGX
|
340
|
+
DSAX = :DSAX
|
335
341
|
DSBX = :DSBX
|
336
342
|
DSCB = :DSCB
|
337
343
|
DSHX = :DSHX
|
@@ -477,9 +483,11 @@ module Razorpay
|
|
477
483
|
ITDX = :ITDX
|
478
484
|
IUCB = :IUCB
|
479
485
|
IUCX = :IUCX
|
486
|
+
IXXX = :IXXX
|
480
487
|
JACX = :JACX
|
481
488
|
JAKA = :JAKA
|
482
489
|
JALX = :JALX
|
490
|
+
JAMX = :JAMX
|
483
491
|
JANA = :JANA
|
484
492
|
JANX = :JANX
|
485
493
|
JASB = :JASB
|
@@ -874,6 +882,7 @@ module Razorpay
|
|
874
882
|
NOSC = :NOSC
|
875
883
|
NPCX = :NPCX
|
876
884
|
NPKX = :NPKX
|
885
|
+
NPPX = :NPPX
|
877
886
|
NRDX = :NRDX
|
878
887
|
NRMX = :NRMX
|
879
888
|
NSBB = :NSBB
|
@@ -933,6 +942,7 @@ module Razorpay
|
|
933
942
|
PGCX = :PGCX
|
934
943
|
PGRX = :PGRX
|
935
944
|
PGTX = :PGTX
|
945
|
+
PHIX = :PHIX
|
936
946
|
PITX = :PITX
|
937
947
|
PJSB = :PJSB
|
938
948
|
PKBX = :PKBX
|
@@ -1233,6 +1243,7 @@ module Razorpay
|
|
1233
1243
|
SVSX = :SVSX
|
1234
1244
|
SWMX = :SWMX
|
1235
1245
|
SWSX = :SWSX
|
1246
|
+
SXXX = :SXXX
|
1236
1247
|
SYNB = :SYNB
|
1237
1248
|
TACX = :TACX
|
1238
1249
|
TADX = :TADX
|
@@ -1494,9 +1505,6 @@ module Razorpay
|
|
1494
1505
|
ZSLX = :ZSLX
|
1495
1506
|
ZSMX = :ZSMX
|
1496
1507
|
|
1497
|
-
SXXX = :SXXX
|
1498
|
-
JAMX = :JAMX
|
1499
|
-
|
1500
1508
|
class << self
|
1501
1509
|
def get_details(code)
|
1502
1510
|
h = data[code]
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# The bank.rb file is generated from `bank.rb.tpl` using constants
|
3
|
+
# from banknames.json. Run `make generate-constants` to
|
4
|
+
# update this file
|
5
|
+
module Razorpay
|
6
|
+
module IFSC
|
7
|
+
module Bank{{ range .Value }}
|
8
|
+
{{ . }} = :{{ . }}{{ end }}
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def get_details(code)
|
12
|
+
h = data[code]
|
13
|
+
h[:bank_code] = (h[:micr][3..5] if h.key? :micr)
|
14
|
+
h
|
15
|
+
end
|
16
|
+
|
17
|
+
def parse_json_file(file)
|
18
|
+
file = "../#{file}.json"
|
19
|
+
JSON.parse(File.read(File.join(__dir__, file)), symbolize_names: true)
|
20
|
+
end
|
21
|
+
|
22
|
+
def data
|
23
|
+
@data ||= parse_json_file 'banks'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/src/ruby/ifsc.rb
CHANGED
@@ -11,7 +11,7 @@ module Razorpay
|
|
11
11
|
class IFSC
|
12
12
|
API = 'https://ifsc.razorpay.com/'.freeze
|
13
13
|
|
14
|
-
attr_reader :bank, :ifsc, :branch, :address, :contact, :city, :district, :state
|
14
|
+
attr_reader :bank, :ifsc, :branch, :address, :contact, :city, :district, :state, :centre, :micr, :imps, :rtgs, :upi, :neft, :swift
|
15
15
|
|
16
16
|
def initialize(ifsc)
|
17
17
|
@ifsc = ifsc
|
@@ -30,6 +30,13 @@ module Razorpay
|
|
30
30
|
@district = api_data['DISTRICT']
|
31
31
|
@state = api_data['STATE']
|
32
32
|
@bankcode = api_data['BANKCODE']
|
33
|
+
@centre = api_data['CENTRE']
|
34
|
+
@imps = api_data['IMPS']
|
35
|
+
@neft = api_data['NEFT']
|
36
|
+
@rtgs = api_data['RTGS']
|
37
|
+
@upi = api_data['UPI']
|
38
|
+
@micr = api_data['MICR']
|
39
|
+
@swift = api_data['SWIFT']
|
33
40
|
@valid = true
|
34
41
|
self
|
35
42
|
end
|
data/src/sublet.json
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
{
|
2
2
|
"AKJB0000001": "AJKB",
|
3
|
-
"ANDB0007999": "CGGX",
|
4
3
|
"APBL0001001": "TSDX",
|
5
4
|
"APBL0002001": "TVDX",
|
6
5
|
"APBL0003001": "DICX",
|
@@ -155,6 +154,7 @@
|
|
155
154
|
"HDFC0CAUCBL": "ANUX",
|
156
155
|
"HDFC0CBACOB": "BACX",
|
157
156
|
"HDFC0CBCBBK": "BCBX",
|
157
|
+
"HDFC0CBCBLH": "BALB",
|
158
158
|
"HDFC0CBCBMN": "BTCX",
|
159
159
|
"HDFC0CBCCBL": "BURX",
|
160
160
|
"HDFC0CBDSCB": "BSCX",
|
@@ -256,7 +256,6 @@
|
|
256
256
|
"HDFC0CMFUCB": "MFUX",
|
257
257
|
"HDFC0CMNSAA": "SMNX",
|
258
258
|
"HDFC0CMNSBM": "MMMX",
|
259
|
-
"HDFC0CMODEL": "MDEX",
|
260
259
|
"HDFC0CMPLTB": "TMAX",
|
261
260
|
"HDFC0CMPSSB": "MVIX",
|
262
261
|
"HDFC0CMUCB1": "TMUX",
|
@@ -270,6 +269,7 @@
|
|
270
269
|
"HDFC0CNGUBL": "NGNX",
|
271
270
|
"HDFC0CNHUCB": "TNHX",
|
272
271
|
"HDFC0CNJMVB": "NJMX",
|
272
|
+
"HDFC0CNPCCB": "NPPX",
|
273
273
|
"HDFC0CNSBLD": "NGSX",
|
274
274
|
"HDFC0CNSBLN": "NABX",
|
275
275
|
"HDFC0CNSBLR": "NSRX",
|
@@ -329,7 +329,6 @@
|
|
329
329
|
"HDFC0CSINDC": "SDCX",
|
330
330
|
"HDFC0CSLCBL": "SLCX",
|
331
331
|
"HDFC0CSMMB1": "SMMX",
|
332
|
-
"HDFC0CSMPBA": "SMPX",
|
333
332
|
"HDFC0CSMSSB": "SEWX",
|
334
333
|
"HDFC0CSMUCB": "SMUX",
|
335
334
|
"HDFC0CSNCBL": "SNAX",
|
@@ -367,10 +366,9 @@
|
|
367
366
|
"HDFC0CTJCBL": "JANX",
|
368
367
|
"HDFC0CTJPCB": "JMPX",
|
369
368
|
"HDFC0CTKNSB": "KUKX",
|
370
|
-
"HDFC0CTLCBL": "LACX",
|
371
369
|
"HDFC0CTMCBL": "MVCX",
|
372
370
|
"HDFC0CTMCNB": "MNBX",
|
373
|
-
"
|
371
|
+
"HDFC0CTPHCB": "PHIX",
|
374
372
|
"HDFC0CTR384": "TUBX",
|
375
373
|
"HDFC0CTRUMC": "RUMX",
|
376
374
|
"HDFC0CTSCBL": "SNGX",
|
@@ -381,7 +379,6 @@
|
|
381
379
|
"HDFC0CTUCB1": "UTBX",
|
382
380
|
"HDFC0CTUCBL": "FGCB",
|
383
381
|
"HDFC0CTUCOB": "TAPX",
|
384
|
-
"HDFC0CTVCBL": "VIJX",
|
385
382
|
"HDFC0CTZNBK": "CCBX",
|
386
383
|
"HDFC0CUCBLM": "TUCL",
|
387
384
|
"HDFC0CUCBNR": "TUNX",
|
@@ -489,6 +486,7 @@
|
|
489
486
|
"IBKL01606BP": "TBPX",
|
490
487
|
"IBKL01642C1": "CTBX",
|
491
488
|
"IBKL01642RP": "RAKX",
|
489
|
+
"IBKL01642SD": "SRHX",
|
492
490
|
"IBKL01720GU": "TGCG",
|
493
491
|
"IBKL0186LEC": "LECX",
|
494
492
|
"IBKL01870N1": "NULX",
|
@@ -608,6 +606,7 @@
|
|
608
606
|
"ICIC00CNSBL": "CNSX",
|
609
607
|
"ICIC00COMCB": "CMCX",
|
610
608
|
"ICIC00DCBLS": "DSHX",
|
609
|
+
"ICIC00DCBSU": "DSAX",
|
611
610
|
"ICIC00DCCBG": "ZSBG",
|
612
611
|
"ICIC00DKDCB": "DKCL",
|
613
612
|
"ICIC00DUCBL": "DEUX",
|
@@ -754,7 +753,8 @@
|
|
754
753
|
"KSCB0017001": "KYDX",
|
755
754
|
"KSCB0018001": "TDBX",
|
756
755
|
"KSCB0701001": "DVDX",
|
757
|
-
"
|
756
|
+
"MAHG0004000": "MGBX",
|
757
|
+
"MDBK0000001": "MDEX",
|
758
758
|
"NVNM0000001": "NAVX",
|
759
759
|
"ORCB0ANG001": "AUBX",
|
760
760
|
"ORCB0ASK001": "TSKX",
|
@@ -886,6 +886,7 @@
|
|
886
886
|
"TNSC0015000": "TNIX",
|
887
887
|
"TNSC0160101": "PCSX",
|
888
888
|
"TSSB0000001": "SSBL",
|
889
|
+
"UBIN0CG7999": "CGGX",
|
889
890
|
"UBIN0DCBEDC": "EDSX",
|
890
891
|
"UCBA0RRBPBG": "PASX",
|
891
892
|
"UJVN0000001": "USFB",
|
@@ -1011,13 +1012,14 @@
|
|
1011
1012
|
"UTIB0STMNBI": "MUNX",
|
1012
1013
|
"UTIB0STTN01": "TTCX",
|
1013
1014
|
"UTIB0SUBBLR": "BUCL",
|
1014
|
-
"UTIB0SUICB1": "UICX",
|
1015
1015
|
"UTIB0SVNS01": "VANX",
|
1016
1016
|
"UTIB0SWJP01": "WZUX",
|
1017
1017
|
"UTIB0YCCB01": "YNCX",
|
1018
1018
|
"UUCB0000001": "UUCX",
|
1019
1019
|
"VASJ0000001": "VJSX",
|
1020
|
+
"VCOB0000001": "VIJX",
|
1020
1021
|
"WBSC0BDCB01": "BADX",
|
1022
|
+
"WBSC0BIRB02": "BBDX",
|
1021
1023
|
"WBSC0BUCB01": "BNCX",
|
1022
1024
|
"WBSC0DDCB01": "DDDX",
|
1023
1025
|
"WBSC0DJCB01": "DDCX",
|
@@ -1122,7 +1124,6 @@
|
|
1122
1124
|
"YESB0SATYA0": "SATX",
|
1123
1125
|
"YESB0SCB003": "SKCX",
|
1124
1126
|
"YESB0SCUB01": "SHMX",
|
1125
|
-
"YESB0SDB002": "SRHX",
|
1126
1127
|
"YESB0SDC001": "SOLX",
|
1127
1128
|
"YESB0SHBK01": "SSHX",
|
1128
1129
|
"YESB0SIND01": "SNDX",
|
data/tests/ruby/bank_spec.rb
CHANGED
@@ -20,11 +20,8 @@ describe Razorpay::IFSC::Bank do
|
|
20
20
|
nach_debit: true)
|
21
21
|
end
|
22
22
|
|
23
|
-
it 'should match all constants defined in
|
24
|
-
|
25
|
-
bank_constants = constants_file.select { |e| e.match(/const/) }.map { |e| e[/\s+const (\w{4})/, 1] }
|
26
|
-
|
27
|
-
bank_constants.each do |c|
|
23
|
+
it 'should match all constants defined in banknames.json' do
|
24
|
+
JSON.parse(File.read('src/banknames.json')).keys.each do |c|
|
28
25
|
expect(described_class::const_get(c)).to eq c.to_sym
|
29
26
|
end
|
30
27
|
end
|
data/tests/ruby/ifsc_spec.rb
CHANGED
@@ -5,16 +5,7 @@ require 'bank'
|
|
5
5
|
|
6
6
|
describe Razorpay::IFSC::IFSC do
|
7
7
|
let(:mocked_response) do
|
8
|
-
|
9
|
-
'BANK' => 'Kotak Mahindra Bank',
|
10
|
-
'IFSC' => 'KKBK0000261',
|
11
|
-
'BRANCH' => 'GURGAON',
|
12
|
-
'ADDRESS' => 'JMD REGENT SQUARE,MEHRAULI GURGAON ROAD,OPPOSITE BRISTOL HOTEL,',
|
13
|
-
'CONTACT' => '4131000',
|
14
|
-
'CITY' => 'GURGAON',
|
15
|
-
'DISTRICT' => 'GURGAON',
|
16
|
-
'STATE' => 'HARYAN'
|
17
|
-
}
|
8
|
+
JSON.parse(File.read 'tests/fixture/HDFC0CAGSBK.json')
|
18
9
|
end
|
19
10
|
let(:dummy_code) { 'foo' }
|
20
11
|
let(:code_double) { double('code double') }
|
@@ -36,6 +27,13 @@ describe Razorpay::IFSC::IFSC do
|
|
36
27
|
expect(fetched_code.city).to eq mocked_response['CITY']
|
37
28
|
expect(fetched_code.district).to eq mocked_response['DISTRICT']
|
38
29
|
expect(fetched_code.state).to eq mocked_response['STATE']
|
30
|
+
expect(fetched_code.centre).to eq mocked_response['CENTRE']
|
31
|
+
expect(fetched_code.micr).to eq mocked_response['MICR']
|
32
|
+
expect(fetched_code.upi).to eq mocked_response['UPI']
|
33
|
+
expect(fetched_code.imps).to eq mocked_response['IMPS']
|
34
|
+
expect(fetched_code.neft).to eq mocked_response['NEFT']
|
35
|
+
expect(fetched_code.rtgs).to eq mocked_response['RTGS']
|
36
|
+
expect(fetched_code.swift).to eq mocked_response['SWIFT']
|
39
37
|
end
|
40
38
|
|
41
39
|
it 'should set @valid to true and skip local validation' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ifsc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abhay Rana
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-03-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- src/banks.json
|
72
72
|
- src/custom-sublets.json
|
73
73
|
- src/ruby/bank.rb
|
74
|
+
- src/ruby/bank.rb.tpl
|
74
75
|
- src/ruby/ifsc.rb
|
75
76
|
- src/sublet.json
|
76
77
|
- tests/ruby/bank_spec.rb
|
@@ -96,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
97
|
- !ruby/object:Gem::Version
|
97
98
|
version: '0'
|
98
99
|
requirements: []
|
99
|
-
rubygems_version: 3.2.
|
100
|
+
rubygems_version: 3.2.22
|
100
101
|
signing_key:
|
101
102
|
specification_version: 4
|
102
103
|
summary: IFSC code database to help you validate IFSC codes
|