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