ifsc 2.0.6 → 2.0.7
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/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
|