class NebulousStomp::RedisHelper
A class to help out users who want to talk to Redis themselves; the “Redis use case”.
redis = NebulousStomp::RedisHelper.new redis.set(:thing, "thingy") redes.set(:gone_in_30_seconds, "thingy", 30) value = redis.get(:thing) redis.del(:thing)
Attributes
redis_handler[W]
For testing only
Public Class Methods
new → (helper)
click to toggle source
# File lib/nebulous_stomp/redis_helper.rb, line 30 def initialize @param_hash = Param.get(:redisConnectHash) fail NebulousError, "NebulousStomp.init has not been called or Redis not configured" \ if @param_hash.nil? || @param_hash.empty? end
Public Instance Methods
del(key)
click to toggle source
Remove a value from the store. Raise an exception if there is none.
# File lib/nebulous_stomp/redis_helper.rb, line 77 def del(key) ensure_connected num = redis_handler.del(key.to_s) fail ArgumentError, "Unknown key, cannot delete" if num == 0 end
get(key) → value
click to toggle source
Get a string value from the store. Return nil if there is none.
# File lib/nebulous_stomp/redis_helper.rb, line 66 def get(key) ensure_connected json_to_value(redis_handler.get key.to_s) end
set(key, value)
click to toggle source
set(key, value, timeout)
Set a value in the store.
# File lib/nebulous_stomp/redis_helper.rb, line 45 def set(key, value, timeout=nil) rtimeout = (Integer(timeout.to_s, 10) rescue nil) rvalue = value_to_json(value) fail ArgumentError, "Timeout must be a number" if timeout && rtimeout.nil? ensure_connected if timeout redis_handler.set(key.to_s, rvalue, ex: rtimeout) else redis_handler.set(key.to_s, rvalue) end self end
Private Instance Methods
ensure_connected()
click to toggle source
# File lib/nebulous_stomp/redis_helper.rb, line 89 def ensure_connected redis_handler.connect unless redis_handler.connected? end
json_to_value(json)
click to toggle source
# File lib/nebulous_stomp/redis_helper.rb, line 97 def json_to_value(json) return nil if json.nil? hash = JSON.parse(json, symbolize_names: true) hash.is_a?(Hash) ? hash[:value] : nil rescue JSON::ParserError return nil end
redis_handler()
click to toggle source
# File lib/nebulous_stomp/redis_helper.rb, line 85 def redis_handler @redis_handler ||= RedisHandler.new(Param.get :redisConnectHash) end
value_to_json(value)
click to toggle source
# File lib/nebulous_stomp/redis_helper.rb, line 93 def value_to_json(value) { value: value}.to_json end