Sha256: f6acee1b68ebfb5904d367e2f71e6d6b2940b1943664d92afd9b8404827453a7

Contents?: true

Size: 1.14 KB

Versions: 3

Compression:

Stored size: 1.14 KB

Contents

module Lawnchair
  module StorageEngine
    class Redis < Abstract
      class << self
        attr_reader :db_connection
        
        def data_store
          Lawnchair.redis
        end
    
        def set(key, value, options={})
          ttl = options[:expires_in] || 3600
          if options[:raw]
            data_store.set(computed_key(key), value, ttl)
          else
            data_store.set(computed_key(key), Marshal.dump(value), ttl)
          end
        end
  
        def exists?(key)
          data_store.exists(computed_key(key))
        end
  
        def expire!(key)
          data_store.del(computed_key(key))
        end
        
        def connection_established!
          verify_db_connection
        end
        
        def db_connection?
          return @db_connection unless @db_connection.nil?
          verify_db_connection
        end
        
        def verify_db_connection
          begin
            data_store.info
            @db_connection = true
          rescue Exception => e
            @db_connection = false
          ensure
            return @db_connection
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lawnchair-0.5.7 lib/storage_engine/redis.rb
lawnchair-0.5.6 lib/storage_engine/redis.rb
lawnchair-0.5.5 lib/storage_engine/redis.rb