Class: Rediska::Connection

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

Constant Summary

Constants included from Bitop

Bitop::BIT_OPERATORS

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 Bitop

#bitop

Methods included from SortMethod

#sort

Methods included from Driver

#[], #[]=, #append, #auth, #bgrewriteaof, #bgsave, #bitcount, #blpop, #brpop, #brpoplpush, #client, #connect_unix, #connected?, #dbsize, #decr, #decrby, #del, #disconnect, #dump, #echo, #exists, #expire, #expireat, #flushall, #flushdb, #get, #getbit, #getrange, #getset, #hdel, #hexists, #hget, #hgetall, #hincrby, #hincrbyfloat, #hkeys, #hlen, #hmget, #hmset, #hscan, #hset, #hsetnx, #hvals, #incr, #incrby, #incrbyfloat, #info, #keys, #lastsave, #lindex, #linsert, #llen, #lpop, #lpush, #lpushx, #lrange, #lrem, #lset, #ltrim, #mget, #monitor, #move, #mset, #msetnx, #persist, #pexpire, #ping, #pttl, #quit, #randomkey, #read, #rename, #renamenx, #restore, #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, #sscan, #strlen, #sunion, #sunionstore, #sync, #time, #timeout=, #ttl, #type, #zadd, #zcard, #zcount, #zincrby, #zinterstore, #zrange, #zrangebyscore, #zrank, #zrem, #zremrangebyrank, #zremrangebyscore, #zrevrange, #zrevrangebyscore, #zrevrank, #zscan, #zscan_each, #zscore, #zunionstore

Constructor Details

#initialize(options = {}) ⇒ Connection

Returns a new instance of Connection.



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

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

Class Method Details

.connect(options = {}) ⇒ Object



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

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

.databasesObject



22
23
24
# File 'lib/rediska/connection.rb', line 22

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

.resetObject



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

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

    @databases = nil
  end
end

Instance Method Details

#dataObject



60
61
62
# File 'lib/rediska/connection.rb', line 60

def data
  find_database
end

#database_instance_keyObject



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

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

#databasesObject



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

def databases
  self.class.databases[database_instance_key]
end

#find_database(id = database_id) ⇒ Object



56
57
58
# File 'lib/rediska/connection.rb', line 56

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