class NetzkeRedisPersistence::Store

Attributes

custom_key[RW]
redis[RW]

Public Class Methods

new(custom_key) click to toggle source
# File lib/netzke_redis_persistence/store.rb, line 5
def initialize(custom_key)
  @redis = NetzkeRedisPersistence.configuration.get_redis_connection
  @custom_key = custom_key
end

Public Instance Methods

[](key) click to toggle source
# File lib/netzke_redis_persistence/store.rb, line 16
def [](key)
  v = redis.get(scoped_key(key))
  begin
    res = v && Marshal.load(v)
    Rails.logger.info "netzke-redis-persitence: Reading key #{scoped_key(key)} on #{redis.inspect} => #{res}"
    res
  rescue => e
    r = e.message.match(/undefined class\/module (.*)/)
    if r[1]
      r[1].constantize.class
      self[key]
    end
  end
end
[]=(key, val) click to toggle source
# File lib/netzke_redis_persistence/store.rb, line 10
def []=(key, val)
  Rails.logger.info "netzke-redis-persitence: Writing key #{scoped_key(key)} on #{redis.inspect} => #{val.inspect}"
  val = Marshal.dump(val)
  redis.set(scoped_key(key), val)
end
clear() click to toggle source
# File lib/netzke_redis_persistence/store.rb, line 35
def clear
  keys = @redis.keys "#{session_key}*"
  keys.each do |key|
    self.delete key
  end
end
delete(key) click to toggle source
# File lib/netzke_redis_persistence/store.rb, line 31
def delete(key)
  @redis.del key
end
scoped_key(key) click to toggle source
# File lib/netzke_redis_persistence/store.rb, line 42
def scoped_key(key)
  "#{session_key}_#{key}"
end
session_key() click to toggle source
# File lib/netzke_redis_persistence/store.rb, line 46
def session_key
  "netzke_states_#{@custom_key}"
end