Sha256: 13af47049e94e2ce8e16bff3150ae009d20bd3174a214fb318b90ee32fd3db0b

Contents?: true

Size: 923 Bytes

Versions: 26

Compression:

Stored size: 923 Bytes

Contents

module Rack
  class MiniProfiler
    class RedisStore < AbstractStore

      EXPIRE_SECONDS = 60 * 60 * 24
     
      def initialize(args)
        args ||= {}
        @prefix = args[:prefix] || 'MPRedisStore'
      end

      def save(page_struct)
        redis.setex "#{@prefix}#{page_struct['Id']}", EXPIRE_SECONDS, Marshal::dump(page_struct) 
      end

      def load(id)
        raw = redis.get "#{@prefix}#{id}"
        if raw
          Marshal::load raw
        end
      end

      def set_unviewed(user, id)
        redis.sadd "#{@prefix}-#{user}-v", id
      end

      def set_viewed(user, id)
        redis.srem "#{@prefix}-#{user}-v", id
      end

      def get_unviewed_ids(user)
        redis.smembers "#{@prefix}-#{user}-v"
      end

      private 

      def redis
        require 'redis' unless defined? Redis
        Redis.new 
      end

    end
  end
end

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
rack-mini-profiler-0.1.22 Ruby/lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.21 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.20 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.19 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.18 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.17 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.16 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.15.pre lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.14.pre lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.13.pre lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.12.pre lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.11.pre lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.10 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.9 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.8 lib/mini_profiler/storage/redis_store.rb
miniprofiler-0.1.7.4 lib/mini_profiler/storage/redis_store.rb
miniprofiler-0.1.7.3 lib/mini_profiler/storage/redis_store.rb
miniprofiler-0.1.7.2 lib/mini_profiler/storage/redis_store.rb
miniprofiler-0.1.7.1 lib/mini_profiler/storage/redis_store.rb
rack-mini-profiler-0.1.7 lib/mini_profiler/storage/redis_store.rb