From 17975f4e967ef3cb017341aa855360148fea3c9c Mon Sep 17 00:00:00 2001 From: Wesley Beary Date: Mon, 29 Jun 2009 10:07:29 -0700 Subject: [PATCH] remove basic parser from blank body responses, add copyobject parser --- lib/fog/aws/s3.rb | 7 ++----- lib/fog/aws/s3/parsers.rb | 12 ++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/fog/aws/s3.rb b/lib/fog/aws/s3.rb index 3b3bea7d5..c53044e10 100644 --- a/lib/fog/aws/s3.rb +++ b/lib/fog/aws/s3.rb @@ -154,8 +154,7 @@ DATA request({ :headers => {}, :host => "#{bucket_name}.#{@host}", - :method => 'DELETE', - :parser => Fog::Parsers::AWS::S3::BasicParser.new + :method => 'DELETE' }) end @@ -167,7 +166,6 @@ DATA :headers => options.merge!(file[:headers]), :host => "#{bucket_name}.#{@host}", :method => 'PUT', - :parser => Fog::Parsers::AWS::S3::BasicParser.new, :path => object_name }) end @@ -178,7 +176,7 @@ DATA :headers => { 'x-amz-copy-source' => "/#{source_bucket_name}/#{source_object_name}" }, :host => "#{destination_bucket_name}.#{@host}", :method => 'PUT', - :parser => Fog::Parsers::AWS::S3::BasicParser.new, + :parser => Fog::Parsers::AWS::S3::CopyObject.new, :path => destination_object_name }) end @@ -209,7 +207,6 @@ DATA :headers => {}, :host => "#{bucket_name}.#{@host}", :method => 'DELETE', - :parser => Fog::Parsers::AWS::S3::BasicParser.new, :path => object_name }) end diff --git a/lib/fog/aws/s3/parsers.rb b/lib/fog/aws/s3/parsers.rb index 3ef4b81bf..7299f5e5e 100644 --- a/lib/fog/aws/s3/parsers.rb +++ b/lib/fog/aws/s3/parsers.rb @@ -119,6 +119,18 @@ module Fog end + class CopyObject < Fog::Parsers::AWS::S3::BasicParser + + def end_element(name) + case name + when 'ETag' + @response[:etag] = @value + when 'LastModified' + @response[:last_modified] = Time.parse(@value) + end + + end + end end end