ifsc 2.0.4 → 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.
@@ -30,6 +30,8 @@
30
30
  "APBL0013023": "DCKX",
31
31
  "FDRL0SAWANT": "Sawantwadi Urban Co-operative Bank",
32
32
  "FDRL0SPCB01": "Sreenivasa Padmavathi Co-operative Bank",
33
+ "HDFC0CHB1": "HCBL",
34
+ "ICIC00TJUCB": "Jamkhandi Urban Co-operative Bank",
33
35
  "JAKA0GRAMEN": "XJKG",
34
36
  "JAKA0JKBCCB": "Baramulla Central Co-operative Bank",
35
37
  "KJSB0KUB2": "Konark Urban Co-operative Bank",
@@ -117,6 +119,9 @@
117
119
  "YESB0VCA": "VCAX",
118
120
  "YESB0VNB": "VCNB",
119
121
  "YESB0WNS": "Wardha Nagri Bank",
122
+ "ICIC00ICBLP": "IXXX",
123
+ "ICIC00ICOBL": "IXXX",
120
124
  "YESB0YDC": "YADX",
121
- "YESB0ZSB": "ZISX"
125
+ "YESB0ZSB": "ZISX",
126
+ "SMCB0000001": "SMCB"
122
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
@@ -295,6 +300,7 @@ module Razorpay
295
300
  DCPX = :DCPX
296
301
  DCSX = :DCSX
297
302
  DCTX = :DCTX
303
+ DCUB = :DCUB
298
304
  DCUX = :DCUX
299
305
  DDBX = :DDBX
300
306
  DDCX = :DDCX
@@ -331,6 +337,7 @@ module Razorpay
331
337
  DOBX = :DOBX
332
338
  DOHB = :DOHB
333
339
  DRGX = :DRGX
340
+ DSAX = :DSAX
334
341
  DSBX = :DSBX
335
342
  DSCB = :DSCB
336
343
  DSHX = :DSHX
@@ -442,6 +449,7 @@ module Razorpay
442
449
  HUCB = :HUCB
443
450
  HUCH = :HUCH
444
451
  HUCX = :HUCX
452
+ HUSB = :HUSB
445
453
  HUTX = :HUTX
446
454
  HVBK = :HVBK
447
455
  IBBK = :IBBK
@@ -475,9 +483,11 @@ module Razorpay
475
483
  ITDX = :ITDX
476
484
  IUCB = :IUCB
477
485
  IUCX = :IUCX
486
+ IXXX = :IXXX
478
487
  JACX = :JACX
479
488
  JAKA = :JAKA
480
489
  JALX = :JALX
490
+ JAMX = :JAMX
481
491
  JANA = :JANA
482
492
  JANX = :JANX
483
493
  JASB = :JASB
@@ -872,6 +882,7 @@ module Razorpay
872
882
  NOSC = :NOSC
873
883
  NPCX = :NPCX
874
884
  NPKX = :NPKX
885
+ NPPX = :NPPX
875
886
  NRDX = :NRDX
876
887
  NRMX = :NRMX
877
888
  NSBB = :NSBB
@@ -931,6 +942,7 @@ module Razorpay
931
942
  PGCX = :PGCX
932
943
  PGRX = :PGRX
933
944
  PGTX = :PGTX
945
+ PHIX = :PHIX
934
946
  PITX = :PITX
935
947
  PJSB = :PJSB
936
948
  PKBX = :PKBX
@@ -955,6 +967,7 @@ module Razorpay
955
967
  PRSX = :PRSX
956
968
  PRTH = :PRTH
957
969
  PRUX = :PRUX
970
+ PSBL = :PSBL
958
971
  PSBX = :PSBX
959
972
  PSCX = :PSCX
960
973
  PSIB = :PSIB
@@ -1155,6 +1168,7 @@ module Razorpay
1155
1168
  SMCX = :SMCX
1156
1169
  SMEX = :SMEX
1157
1170
  SMMX = :SMMX
1171
+ SMNB = :SMNB
1158
1172
  SMNX = :SMNX
1159
1173
  SMPX = :SMPX
1160
1174
  SMSX = :SMSX
@@ -1229,6 +1243,7 @@ module Razorpay
1229
1243
  SVSX = :SVSX
1230
1244
  SWMX = :SWMX
1231
1245
  SWSX = :SWSX
1246
+ SXXX = :SXXX
1232
1247
  SYNB = :SYNB
1233
1248
  TACX = :TACX
1234
1249
  TADX = :TADX
@@ -1490,9 +1505,6 @@ module Razorpay
1490
1505
  ZSLX = :ZSLX
1491
1506
  ZSMX = :ZSMX
1492
1507
 
1493
- SXXX = :SXXX
1494
- JAMX = :JAMX
1495
-
1496
1508
  class << self
1497
1509
  def get_details(code)
1498
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,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ifsc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abhay Rana
8
8
  - Nihal Gonsalves
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-11-18 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
@@ -81,7 +82,7 @@ homepage: https://ifsc.razorpay.com
81
82
  licenses:
82
83
  - MIT
83
84
  metadata: {}
84
- post_install_message:
85
+ post_install_message:
85
86
  rdoc_options: []
86
87
  require_paths:
87
88
  - src/ruby
@@ -96,8 +97,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
97
  - !ruby/object:Gem::Version
97
98
  version: '0'
98
99
  requirements: []
99
- rubygems_version: 3.0.6
100
- signing_key:
100
+ rubygems_version: 3.2.22
101
+ signing_key:
101
102
  specification_version: 4
102
103
  summary: IFSC code database to help you validate IFSC codes
103
104
  test_files: