class Rack::MiniProfiler::RedisStore

Constants

EXPIRES_IN_SECONDS

Public Class Methods

new(args = nil) click to toggle source
# File lib/mini_profiler/storage/redis_store.rb, line 7
def initialize(args = nil)
  @args               = args || {}
  @prefix             = @args.delete(:prefix)     || 'MPRedisStore'
  @redis_connection   = @args.delete(:connection)
  @expires_in_seconds = @args.delete(:expires_in) || EXPIRES_IN_SECONDS
end

Public Instance Methods

diagnostics(user) click to toggle source
# File lib/mini_profiler/storage/redis_store.rb, line 44
      def diagnostics(user)
"Redis prefix: #{@prefix}
Redis location: #{redis.client.host}:#{redis.client.port} db: #{redis.client.db}
unviewed_ids: #{get_unviewed_ids(user)}
"
      end
get_unviewed_ids(user) click to toggle source
# File lib/mini_profiler/storage/redis_store.rb, line 40
def get_unviewed_ids(user)
  redis.smembers "#{@prefix}-#{user}-v"
end
load(id) click to toggle source
# File lib/mini_profiler/storage/redis_store.rb, line 18
def load(id)
  key = "#{@prefix}#{id}"
  raw = redis.get key
  begin
    Marshal::load(raw) if raw
  rescue
    # bad format, junk old data
    redis.del key
    nil
  end
end
save(page_struct) click to toggle source
# File lib/mini_profiler/storage/redis_store.rb, line 14
def save(page_struct)
  redis.setex "#{@prefix}#{page_struct[:id]}", @expires_in_seconds, Marshal::dump(page_struct)
end
set_unviewed(user, id) click to toggle source
# File lib/mini_profiler/storage/redis_store.rb, line 30
def set_unviewed(user, id)
  key = "#{@prefix}-#{user}-v"
  redis.sadd key, id
  redis.expire key, @expires_in_seconds
end
set_viewed(user, id) click to toggle source
# File lib/mini_profiler/storage/redis_store.rb, line 36
def set_viewed(user, id)
  redis.srem "#{@prefix}-#{user}-v", id
end

Private Instance Methods

redis() click to toggle source
# File lib/mini_profiler/storage/redis_store.rb, line 53
def redis
  @redis_connection ||= begin
    require 'redis' unless defined? Redis
    Redis.new(@args)
  end
end