class RemoteResource::Storage::Redis
Public Class Methods
new(redis, options = {})
click to toggle source
# File lib/remote_resource/storage/redis.rb, line 9 def initialize(redis, options = {}) @redis = redis @options = options.reverse_merge( serializer: Serializers::MarshalSerializer.new, expires_in: 1 * (60 * 60 * 24) ) @serializer = @options[:serializer] end
Public Instance Methods
read_key(key)
click to toggle source
# File lib/remote_resource/storage/redis.rb, line 18 def read_key(key) redis_value = @redis.hgetall key StorageEntry.new @serializer.load(redis_value['headers']), @serializer.load(redis_value['data']) end
write_key(storage_key, storage_entry)
click to toggle source
# File lib/remote_resource/storage/redis.rb, line 24 def write_key(storage_key, storage_entry) write_args = [] storage_entry.to_hash.each_pair do |key, value| write_args.concat([key, @serializer.dump(value)]) unless value.empty? end @redis.multi do |multi| multi.hmset storage_key, *write_args multi.expire storage_key, @options[:expires_in] end end