lib/dist_redis.rb in ezmobius-redis-rb-0.0.3 vs lib/dist_redis.rb in ezmobius-redis-rb-0.1

- old
+ new

@@ -1,15 +1,22 @@ require 'redis' require 'hash_ring' class DistRedis attr_reader :ring - def initialize(*servers) - srvs = [] - servers.each do |s| - server, port = s.split(':') - srvs << Redis.new(:host => server, :port => port) + def initialize(opts={}) + hosts = [] + + db = opts[:db] || nil + timeout = opts[:timeout] || nil + + raise Error, "No hosts given" unless opts[:hosts] + + opts[:hosts].each do |h| + host, port = h.split(':') + hosts << Redis.new(:host => host, :port => port, :db => db, :timeout => timeout, :db => db) end - @ring = HashRing.new srvs + + @ring = HashRing.new hosts end def node_for_key(key) if key =~ /\{(.*)?\}/ key = $1