Class: Rediska::Connection

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

Instance Attribute Summary

Attributes included from Driver

#buffer, #database_id, #replies

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Driver

#[], #[]=, #append, #auth, #bgrewriteaof, #bgsave, #connect_unix, #connected?, #dbsize, #decr, #decrby, #del, #disconnect, #echo, #exec, #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, #multi, #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, #sort, #spop, #srandmember, #srem, #strlen, #sunion, #sunionstore, #sync, #time, #timeout=, #ttl, #type, #unwatch, #watch, #write, #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.



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

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

Class Method Details

.connect(options = {}) ⇒ Object



28
29
30
# File 'lib/rediska/connection.rb', line 28

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

.databasesObject



13
14
15
# File 'lib/rediska/connection.rb', line 13

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

.resetObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/rediska/connection.rb', line 17

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

    @databases = nil
  end
end

Instance Method Details

#dataObject



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

def data
  find_database
end

#database_instance_keyObject



38
39
40
41
# File 'lib/rediska/connection.rb', line 38

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

#databasesObject



43
44
45
# File 'lib/rediska/connection.rb', line 43

def databases
  self.class.databases[database_instance_key]
end

#find_database(id = database_id) ⇒ Object



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

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