class FakeAWS::S3::Operations::GetObject
Public Class Methods
new(root_directory, request)
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 6 def initialize(root_directory, request) @root_directory = root_directory @request = request end
Public Instance Methods
call()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 11 def call return no_such_bucket_response unless bucket_on_disk.exists? return no_such_key_response unless object_on_disk.exists? success_response end
Private Instance Methods
bucket_on_disk()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 52 def bucket_on_disk @bucket_on_disk ||= BucketOnDisk.new(@root_directory, @request.bucket) end
content_type_header()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 40 def content_type_header { "Content-Type" => metadata["Content-Type"] || "application/octet-stream" } end
headers()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 32 def headers [content_type_header, user_headers].inject(:merge) end
metadata()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 44 def metadata @metadata ||= object_on_disk.read_metadata end
no_such_bucket_response()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 24 def no_such_bucket_response Responses::Error.new("NoSuchBucket", "BucketName" => @request.bucket) end
no_such_key_response()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 28 def no_such_key_response Responses::Error.new("NoSuchKey", "Resource" => @request.key) end
object_on_disk()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 48 def object_on_disk @object_on_disk ||= ObjectOnDisk.new(bucket_on_disk, @request.key) end
success_response()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 20 def success_response Responses::Success.new(object_on_disk.read_content, 200, headers) end
user_headers()
click to toggle source
# File lib/fake_aws/s3/operations/get_object.rb, line 36 def user_headers metadata.select {|key, _| key.start_with?("x-amz-meta-") } end