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