Class: Rediska::Connection

Inherits:
Object
  • Object
show all
Includes:
CommandExecutor, Driver, SortMethod, TransactionCommands
Defined in:
lib/rediska/connection.rb

Instance Attribute Summary

Attributes included from Driver

#database_id, #replies

Class Method Summary collapse

Instance Method Summary collapse

Methods included from CommandExecutor

#write

Methods included from TransactionCommands

#discard, #exec, included, #multi, #unwatch, #watch

Methods included from SortMethod

#sort

Methods included from Driver

#[], #[]=, #append, #auth, #bgrewriteaof, #bgsave, #bitcount, #connect_unix, #connected?, #dbsize, #decr, #decrby, #del, #disconnect, #echo, #exists, #expire, #expireat, #flushall, #flushdb, #get, #getbit, #getrange, #getset, #hdel, #hexists, #hget, #hgetall, #hincrby, #hincrbyfloat, #hkeys, #hlen, #hmget, #hmset, #hset, #hsetnx, #hvals, #incr, #incrby, #info, #keys, #lastsave, #lindex, #linsert, #llen, #lpop, #lpush, #lpushx, #lrange, #lrem, #lset, #ltrim, #mget, #monitor, #move, #mset, #msetnx, #persist, #ping, #quit, #randomkey, #read, #rename, #renamenx, #rpop, #rpoplpush, #rpush, #rpushx, #sadd, #save, #scan, #scard, #sdiff, #sdiffstore, #select, #set, #setbit, #setex, #setnx, #setrange, #shutdown, #sinter, #sinterstore, #sismember, #slaveof, #smembers, #smove, #spop, #srandmember, #srem, #strlen, #sunion, #sunionstore, #sync, #time, #timeout=, #ttl, #type, #zadd, #zcard, #zcount, #zincrby, #zinterstore, #zrange, #zrangebyscore, #zrank, #zrem, #zremrangebyrank, #zremrangebyscore, #zrevrange, #zrevrangebyscore, #zrevrank, #zscore, #zunionstore

Constructor Details

#initialize(options = {}) ⇒ Connection

Returns a new instance of Connection.



40
41
42
43
# File 'lib/rediska/connection.rb', line 40

def initialize(options = {})
  @options = options
  @database_id = 0
end

Class Method Details

.connect(options = {}) ⇒ Object



35
36
37
# File 'lib/rediska/connection.rb', line 35

def connect(options = {})
  new(options)
end

.databasesObject



20
21
22
# File 'lib/rediska/connection.rb', line 20

def databases
  @databases ||= Hash.new {|h,k| h[k] = [] }
end

.resetObject



24
25
26
27
28
29
30
31
32
33
# File 'lib/rediska/connection.rb', line 24

def reset
  if @databases
    @databases.values do |db|
      db.class.reset
      db.each(&:clear)
    end

    @databases = nil
  end
end

Instance Method Details

#dataObject



58
59
60
# File 'lib/rediska/connection.rb', line 58

def data
  find_database
end

#database_instance_keyObject



45
46
47
48
# File 'lib/rediska/connection.rb', line 45

def database_instance_key
  @database_instance_key ||= [@options[:host], @options[:port], Rediska.configuration.namespace].
    compact.join(':')
end

#databasesObject



50
51
52
# File 'lib/rediska/connection.rb', line 50

def databases
  self.class.databases[database_instance_key]
end

#find_database(id = database_id) ⇒ Object



54
55
56
# File 'lib/rediska/connection.rb', line 54

def find_database(id = database_id)
  databases[id] ||= db_class.new(database_instance_key, id)
end