diff options
Diffstat (limited to 'lib/mogilefs/mogilefs.rb')
-rw-r--r-- | lib/mogilefs/mogilefs.rb | 24 |
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 ## |