Class: RoutingNumber
- Inherits:
-
Object
- Object
- RoutingNumber
- Defined in:
- lib/bank_routing/routing_numbers.rb
Defined Under Namespace
Classes: InvalidStore, MemStore, RedisStore, StoreBase
Constant Summary collapse
- Stores =
class MemcacheStore < StoreBase
end
{ default: MemStore, memory: MemStore, redis: RedisStore, # memcached: MemcachedStore }
- FORMAT =
[ [:route,9], [:office_code,1], [:servicing_frb_number,9], [:record_type_code,1], [:change_date,6], [:new_routing_number,9], [:name,36], [:address,36], [:city,20], [:state,2], [:zip,5], [:zip_ext,4], [:phone_area,3], [:phone_prefix,3], [:phone_suffix,4], [:institution_status_code,1], [:data_view_code,1], [:filler,5] ].freeze
- DefaultOptions =
{ store_in: :memory, routing_data_url: "https://www.fededirectory.frb.org/FedACHdir.txt", routing_data_file: File.(File.dirname(__FILE__)) + "/../../data/FedACHdir.txt", fetch_fed_data: false, store_opts: {}, mapping_file: File.(File.dirname(__FILE__) + "/../../data/mappings.json"), metadata_file: File.(File.dirname(__FILE__) + "/../../data/metadata.json") }.freeze
Class Method Summary collapse
- .get(num) ⇒ Object (also: [], find)
- .init!(opts = {}) ⇒ Object
- .options=(opts) ⇒ Object
- .reconnect! ⇒ Object
- .store_in(name, opts = {}) ⇒ Object
Class Method Details
.get(num) ⇒ Object Also known as: [], find
210 211 212 213 214 215 216 217 |
# File 'lib/bank_routing/routing_numbers.rb', line 210 def get(num) init!() if cnt = store.get(num.to_s) cnt else nil end end |
.init!(opts = {}) ⇒ Object
192 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/bank_routing/routing_numbers.rb', line 192 def init!(opts = {}) return if @initted = .merge(opts) if [:store_in] store_in [:store_in], [:store_opts] end unless store.loaded? log.info "Loading routing numbers..." load_routing_numbers log.info "Done loading routing numbers." end @initted = true end |
.options=(opts) ⇒ Object
206 207 208 |
# File 'lib/bank_routing/routing_numbers.rb', line 206 def (opts) = .merge(opts) end |
.reconnect! ⇒ Object
232 233 234 235 |
# File 'lib/bank_routing/routing_numbers.rb', line 232 def reconnect! log.info "Reconnecting!" store.reconnect! end |
.store_in(name, opts = {}) ⇒ Object
221 222 223 224 225 226 227 228 229 230 |
# File 'lib/bank_routing/routing_numbers.rb', line 221 def store_in(name, opts={}) raise InvalidStore unless s_cls = Stores[name.to_sym] return if @store.is_a?(s_cls) @store.shutdown! if @store @store = s_cls.new(opts.merge(logger: log)) @initted = false [:store_in] = name.to_sym [:store_opts] = opts init! end |