]> git.saurik.com Git - redis.git/blobdiff - client-libraries/ruby/lib/dist_redis.rb
It is now possible to specify - as config file name to read it from stdin
[redis.git] / client-libraries / ruby / lib / dist_redis.rb
index e79af4728b5ac45fb3c46f3f9eacdc3158624727..830f8b6de3bef56ecf543e7ee959a18a5cdcd5f6 100644 (file)
@@ -2,13 +2,20 @@ 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)