class ICFS::ConfigRedis
Implement Config
with a Redis cache
Public Class Methods
new(redis, base, opts={})
click to toggle source
New instance
@param redis [Redis] The redis client @param base [Config] The base Config
store @param opts [Hash] Options @option opts [String] :prefix Prefix for Redis key @option opts [Integer] :expires Expiration time in seconds
Calls superclass method
ICFS::Config::new
# File lib/icfs/config_redis.rb, line 33 def initialize(redis, base, opts={}) super(base.setup) @redis = redis @base = base @pre = opts[:prefix] || '' @exp = opts[:expires] || 1*60*60 # 1 hour default end
Public Instance Methods
load(unam)
click to toggle source
(see Config#load
)
# File lib/icfs/config_redis.rb, line 45 def load(unam) Items.validate(unam, 'User/Role/Group name', Items::FieldUsergrp) @unam = unam.dup key = _key(unam) # try cache json = @redis.get(key) if json _parse(json) return true end # get base object succ = @base.load(unam) @data = @base.data return succ end
save()
click to toggle source
(see Config#save
)
# File lib/icfs/config_redis.rb, line 67 def save() raise(RuntimeError, 'Save requires a user name') if !@unam json = _generate() @redis.del(_key(@unam)) @base.data = @data @base.save end