Skip to content

Commit 1755b2d

Browse files
committed
Refactor post_object_restore to accept options hash for parameters, deprecating bare days parameter usage #740
1 parent c9eb37c commit 1755b2d

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

lib/fog/aws/requests/storage/post_object_restore.rb

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ class Real
66
#
77
# @param bucket_name [String] Name of bucket containing object
88
# @param object_name [String] Name of object to restore
9-
# @option days [Integer] Number of days to restore object for. Defaults to 100000 (a very long time)
10-
# @option tier [String] Glacier retrieval tier. Can be 'Standard', 'Bulk', or 'Expedited'
9+
# @param options [Hash] Optional parameters
10+
# @option options [Integer] :days Number of days to restore object for. Defaults to 100000 (a very long time)
11+
# @option options [String] :tier Glacier retrieval tier. Can be 'Standard', 'Bulk', or 'Expedited'
1112
#
1213
# @return [Excon::Response] response:
1314
# * status [Integer] 200 (OK) Object is previously restored
@@ -16,10 +17,18 @@ class Real
1617
#
1718
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html
1819
#
19-
def post_object_restore(bucket_name, object_name, days = 100000, tier = nil)
20+
def post_object_restore(bucket_name, object_name, options = {})
2021
raise ArgumentError.new('bucket_name is required') unless bucket_name
2122
raise ArgumentError.new('object_name is required') unless object_name
2223

24+
unless options.is_a?(Hash)
25+
Fog::Logger.deprecation("post_object_restore with a bare days parameter is deprecated, use post_object_restore(bucket_name, object_name, :days => days) instead [light_black](#{caller.first})[/]")
26+
options = { :days => options }
27+
end
28+
29+
days = options[:days] || 100000
30+
tier = options[:tier]
31+
2332
data = '<RestoreRequest xmlns="http://s3.amazonaws.com/doc/2006-03-01/">'
2433
data += '<Days>' + days.to_s + '</Days>'
2534
if tier
@@ -45,7 +54,12 @@ def post_object_restore(bucket_name, object_name, days = 100000, tier = nil)
4554
end
4655

4756
class Mock # :nodoc:all
48-
def post_object_restore(bucket_name, object_name, days = 100000, tier = nil)
57+
def post_object_restore(bucket_name, object_name, options = {})
58+
unless options.is_a?(Hash)
59+
Fog::Logger.deprecation("post_object_restore with a bare days parameter is deprecated, use post_object_restore(bucket_name, object_name, :days => days) instead [light_black](#{caller.first})[/]")
60+
options = { :days => options }
61+
end
62+
4963
response = get_object(bucket_name, object_name)
5064
response.body = nil
5165
response

0 commit comments

Comments
 (0)