class Razorpay::IFSC::IFSC
Primary class for handling IFSC
Codes
Constants
- API
Attributes
address[R]
bank[R]
branch[R]
city[R]
contact[R]
district[R]
ifsc[R]
state[R]
Public Class Methods
new(ifsc)
click to toggle source
# File src/ruby/ifsc.rb, line 16 def initialize(ifsc) @ifsc = ifsc end
Private Class Methods
bank_name_data()
click to toggle source
# File src/ruby/ifsc.rb, line 114 def bank_name_data @bank_name_data ||= parse_json_file 'banknames' end
bank_name_for(code)
click to toggle source
# File src/ruby/ifsc.rb, line 82 def bank_name_for(code) sublet_code = sublet_data[code] regular_code = code[0..3].upcase custom_name = bank_name_via_custom_sublet code custom_name || bank_name_data[sublet_code || regular_code] end
bank_name_via_custom_sublet(code)
click to toggle source
See getCustomSubletName in IFSC.php
# File src/ruby/ifsc.rb, line 92 def bank_name_via_custom_sublet(code) custom_sublet_data.each do |prefix, value| if prefix == code[0..prefix.length - 1] if value.length == 4 return bank_name_data[value] else return value end end end return nil end
custom_sublet_data()
click to toggle source
# File src/ruby/ifsc.rb, line 122 def custom_sublet_data @custom_sublet_data ||= parse_json_file 'custom-sublets' end
data()
click to toggle source
# File src/ruby/ifsc.rb, line 110 def data @data ||= parse_json_file 'IFSC' end
find(ifsc)
click to toggle source
# File src/ruby/ifsc.rb, line 57 def find(ifsc) new(ifsc).get end
parse_json_file(file)
click to toggle source
# File src/ruby/ifsc.rb, line 105 def parse_json_file(file) file = "../#{file}.json" JSON.parse(File.read(File.join(__dir__, file))) end
sublet_data()
click to toggle source
# File src/ruby/ifsc.rb, line 118 def sublet_data @sublet_data ||= parse_json_file 'sublet' end
valid?(code)
click to toggle source
# File src/ruby/ifsc.rb, line 66 def valid?(code) return false unless code.size == 11 return false unless code[4] == '0' bank_code = code[0..3].upcase branch_code = code[5..-1].upcase return false unless data.key? bank_code if branch_code =~ /^(\d)+$/ data[bank_code].include? branch_code.to_i else data[bank_code].include? branch_code end end
validate!(code)
click to toggle source
# File src/ruby/ifsc.rb, line 61 def validate!(code) raise InvalidCodeError unless valid? code true end
Public Instance Methods
bank_name()
click to toggle source
Returns the bank name taking sublet branches into consideration. Returns the normal branch name otherwise
# File src/ruby/ifsc.rb, line 40 def bank_name @bank = self.class.bank_name_for @ifsc end
get()
click to toggle source
# File src/ruby/ifsc.rb, line 24 def get @bank = api_data['BANK'] @branch = api_data['BRANCH'] @address = api_data['ADDRESS'] @contact = api_data['CONTACT'] @city = api_data['CITY'] @district = api_data['DISTRICT'] @state = api_data['STATE'] @bankcode = api_data['BANKCODE'] @valid = true self end
valid?()
click to toggle source
# File src/ruby/ifsc.rb, line 20 def valid? @valid ||= self.class.valid? ifsc end
Private Instance Methods
api_data()
click to toggle source
# File src/ruby/ifsc.rb, line 46 def api_data @api_data ||= begin response = HTTParty.get(URI.join(API, ifsc)) raise InvalidCodeError, 'IFSC API returned 404' if response.code == 404 JSON.parse(response.body) end rescue HTTParty::Error, SocketError => e raise ServerError, e.message end