Class: RoutingNumber::RedisStore

Inherits:
StoreBase show all
Defined in:
lib/bank_routing/storage/redis.rb

Constant Summary collapse

LOADED_KEY =
"LoadedRoutingNumbers".freeze
LOADING_KEY =
"#{LOADED_KEY}::loading".freeze
STORAGE_KEY =
"RoutingNumberLookup"

Instance Method Summary collapse

Methods inherited from StoreBase

#log, #options

Constructor Details

#initialize(*args) ⇒ RedisStore

Returns a new instance of RedisStore.



11
12
13
14
# File 'lib/bank_routing/storage/redis.rb', line 11

def initialize(*args)
  super(*args)
  require 'redis'
end

Instance Method Details

#connectObject



54
55
56
57
58
# File 'lib/bank_routing/storage/redis.rb', line 54

def connect
  log.info "Connecting to Redis."
  log.debug "Connection settings: #{options.inspect}"
  Redis.new(options)
end

#done_loading!Object



33
34
35
36
# File 'lib/bank_routing/storage/redis.rb', line 33

def done_loading!
  store.del(LOADING_KEY)
  loaded!
end

#get(num) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/bank_routing/storage/redis.rb', line 42

def get(num)
  if cnt = store.hget(STORAGE_KEY,num.to_s)
    Yajl::Parser.new(symbolize_keys: true).parse(cnt)
  else
    nil
  end
end

#loaded!Object



20
21
22
23
# File 'lib/bank_routing/storage/redis.rb', line 20

def loaded!
  store.set(LOADED_KEY,"yes")
  store.expire(LOADED_KEY,60*60*24*7)
end

#loaded?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/bank_routing/storage/redis.rb', line 16

def loaded?
  store.exists(LOADED_KEY)
end

#loading!Object



25
26
27
# File 'lib/bank_routing/storage/redis.rb', line 25

def loading!
  store.setnx(LOADING_KEY,"yup")
end

#loading?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/bank_routing/storage/redis.rb', line 29

def loading?
  loading!
end

#reconnect!Object



60
61
62
63
# File 'lib/bank_routing/storage/redis.rb', line 60

def reconnect!
  @store = nil
  store
end

#save(num, obj) ⇒ Object



38
39
40
# File 'lib/bank_routing/storage/redis.rb', line 38

def save(num,obj)
  store.hset(STORAGE_KEY,num.to_s,Yajl::Encoder.encode(obj))
end

#shutdown!Object



65
66
67
# File 'lib/bank_routing/storage/redis.rb', line 65

def shutdown!
  @store = nil
end

#storeObject



50
51
52
# File 'lib/bank_routing/storage/redis.rb', line 50

def store
  @store ||= connect
end