Class: Glass::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/glass/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#no_redisObject

Returns the value of attribute no_redis.



5
6
7
# File 'lib/glass/config.rb', line 5

def no_redis
  @no_redis
end

Instance Method Details

#redisObject



42
43
44
45
46
47
# File 'lib/glass/config.rb', line 42

def redis
  if @no_redis then return nil end
  return @redis if @redis
  self.redis = Redis.respond_to?(:connect) ? Redis.connect : "localhost:6379"
  self.redis
end

#redis=(server) ⇒ Object

Accepts:

1. A 'hostname:port' String
2. A 'hostname:port:db' String (to select the Redis db)
3. A 'hostname:port/namespace' String (to set the Redis namespace)
4. A Redis URL String 'redis://host:port'
5. An instance of `Redis`, `Redis::Client`, `Redis::DistRedis`,
   or `Redis::Namespace`.


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/glass/config.rb', line 15

def redis=(server)
  if @no_redis then return nil end
  return if server == "" or server.nil?

  @redis = case server
             when String
               if server['redis://']
                 redis = Redis.connect(:url => server, :thread_safe => true)
               else
                 server, namespace = server.split('/', 2)
                 host, port, db = server.split(':')

                 redis = Redis.new(
                     :host => host,
                     :port => port,
                     :db => db,
                     :thread_safe => true
                 )
               end
               Redis::Namespace.new(namespace || :glass, :redis => redis)
             when Redis::Namespace, Redis::Distributed
               server
             when Redis
               Redis::Namespace.new(:glass, :redis => server)
           end
end

#redis_idObject



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/glass/config.rb', line 49

def redis_id
  if @no_redis then return nil end
  # support 1.x versions of redis-rb
  if redis.respond_to?(:server)
    redis.server
  elsif redis.respond_to?(:nodes) # distributed
    redis.nodes.map(&:id).join(', ')
  else
    redis.client.id
  end
end