Class: RoutingNumber
- Inherits:
-
Object
- Object
- RoutingNumber
- Defined in:
- lib/bank_routing/storage/base.rb,
lib/bank_routing/storage/redis.rb,
lib/bank_routing/storage/memory.rb,
lib/bank_routing/routing_numbers.rb
Defined Under Namespace
Classes: InvalidStore, MemStore, RedisStore, StoreBase
Constant Summary collapse
- Stores =
{}
- 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
- .fetch_fresh_data!(fetch = true) ⇒ Object
- .get(num) ⇒ Object (also: [], find)
- .init!(opts = {}) ⇒ Object
- .options=(opts) ⇒ Object
- .reconnect! ⇒ Object
- .store_in(name, opts = {}) ⇒ Object
Class Method Details
.fetch_fresh_data!(fetch = true) ⇒ Object
88 89 90 91 |
# File 'lib/bank_routing/routing_numbers.rb', line 88 def fetch_fresh_data!( fetch=true ) [ :fetch_fed_data ] = fetch load_routing_numbers( get_raw_data ) end |
.get(num) ⇒ Object Also known as: [], find
61 62 63 64 65 66 67 68 |
# File 'lib/bank_routing/routing_numbers.rb', line 61 def get(num) init!() if cnt = store.get(num.to_s) cnt else nil end end |
.init!(opts = {}) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/bank_routing/routing_numbers.rb', line 43 def init!(opts = {}) return if @initted @options = .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
57 58 59 |
# File 'lib/bank_routing/routing_numbers.rb', line 57 def (opts) @options = .merge(opts) end |
.reconnect! ⇒ Object
83 84 85 86 |
# File 'lib/bank_routing/routing_numbers.rb', line 83 def reconnect! log.info "Reconnecting!" store.reconnect! end |
.store_in(name, opts = {}) ⇒ Object
72 73 74 75 76 77 78 79 80 81 |
# File 'lib/bank_routing/routing_numbers.rb', line 72 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 |