ifsc 2.0.6 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -119,6 +119,9 @@
119
119
  "YESB0VCA": "VCAX",
120
120
  "YESB0VNB": "VCNB",
121
121
  "YESB0WNS": "Wardha Nagri Bank",
122
+ "ICIC00ICBLP": "IXXX",
123
+ "ICIC00ICOBL": "IXXX",
122
124
  "YESB0YDC": "YADX",
123
- "YESB0ZSB": "ZISX"
125
+ "YESB0ZSB": "ZISX",
126
+ "SMCB0000001": "SMCB"
124
127
  }
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
- "HDFC0CTMUCB": "MKUX",
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
- "MAHB0RRBMGB": "MGBX",
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",
@@ -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 PHP' do
24
- constants_file = File.readlines('src/php/Bank.php')
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
@@ -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.6
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-01-25 00:00:00.000000000 Z
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.29
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