about summary refs log tree commit homepage
path: root/lib/mogilefs/mogilefs.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mogilefs/mogilefs.rb')
-rw-r--r--lib/mogilefs/mogilefs.rb24
1 files changed, 19 insertions, 5 deletions
diff --git a/lib/mogilefs/mogilefs.rb b/lib/mogilefs/mogilefs.rb
index 1850723..f132dd7 100644
--- a/lib/mogilefs/mogilefs.rb
+++ b/lib/mogilefs/mogilefs.rb
@@ -23,6 +23,7 @@ class MogileFS::MogileFS < MogileFS::Client
 
   def initialize(args = {})
     @domain = args[:domain]
+    @zone = args[:zone]
 
     @get_file_data_timeout = 5
 
@@ -73,9 +74,22 @@ class MogileFS::MogileFS < MogileFS::Client
   ##
   # Get the paths for +key+.
 
-  def get_paths(key, noverify = true, zone = nil)
-    opts = { :domain => @domain, :key => key,
-             :noverify => noverify ? 1 : 0, :zone => zone }
+  def get_paths(key, *args)
+    opts = {
+      :domain => @domain,
+      :key => key,
+      :noverify => args[0],
+      :zone => args[1],
+    }
+    if Hash === args[0]
+      args = args[0]
+      opts[:noverify] = args[:noverify]
+      opts[:zone] = args[:zone]
+      pathcount = args[:pathcount] and opts[:pathcount] = pathcount.to_i
+    end
+
+    opts[:zone] ||= @zone
+    opts[:noverify] = opts[:noverify] ? 1 : 0
     @backend.respond_to?(:_get_paths) and return @backend._get_paths(opts)
     res = @backend.get_paths(opts)
     (1..res['paths'].to_i).map { |i| res["path#{i}"] }.compact
@@ -84,8 +98,8 @@ class MogileFS::MogileFS < MogileFS::Client
   ##
   # Get the URIs for +key+.
 
-  def get_uris(key, noverify = true, zone = nil)
-    get_paths(key, noverify, zone).map! { |path| URI.parse(path) }
+  def get_uris(key, *args)
+    get_paths(key, *args).map! { |path| URI.parse(path) }
   end
 
   ##