Module: RedisSupport

Extended by:
ClassMethods
Defined in:
lib/redis_support/locks.rb,
lib/redis_support.rb,
lib/redis_support/class_extensions.rb

Overview

Locking support

Defined Under Namespace

Modules: ClassMethods, Keys Classes: DuplicateRedisKeyDefinitionError, InvalidRedisKeyDefinitionError, RedisKeyError

Constant Summary collapse

VAR_PATTERN =
/^[A-Z]+(_[A-Z]+)*$/
STR_PATTERN =
/^[a-z_]+$/

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ClassMethods

acquire_redis_lock, acquire_redis_lock_nonblock, has_redis_lock?, is_redis_fulfilling_locked?, is_redis_locked?, locked_until, redefine_redis_key, redis=, redis_key, redis_lock, redis_lock_nonblock, redis_throttle, release_redis_lock

Class Method Details

.included(model) ⇒ Object



33
34
35
# File 'lib/redis_support.rb', line 33

def self.included(model)
  model.extend ClassMethods
end

.redis_connect(connection) ⇒ Object

Inspired/take from the redis= in Resque

Accepts:

1. A 'hostname:port' string
2. A 'hostname:port:db' string (to select the Redis db)
3. An instance of `Redis`, `Redis::Client`


43
44
45
46
47
48
49
50
# File 'lib/redis_support.rb', line 43

def self.redis_connect(connection)
  if connection.respond_to? :split
    host, port, db = connection.split(':')
    Redis.new(:host => host,:port => port,:thread_safe => true,:db => db)
  else
    connection
  end
end

Instance Method Details

#keysObject



18
19
20
# File 'lib/redis_support.rb', line 18

def keys
  Keys
end

#redisObject



10
11
12
13
14
15
16
# File 'lib/redis_support.rb', line 10

def redis
  if( self.class.respond_to?(:redis) )
    self.class.redis
  else
    @redis || RedisSupport.redis
  end
end