class AWSRaw::S3::HTTPRequestBuilder
Attributes
s3_request[R]
Public Class Methods
new(s3_request)
click to toggle source
# File lib/awsraw/s3/http_request_builder.rb, line 7 def initialize(s3_request) @s3_request = s3_request end
Public Instance Methods
build()
click to toggle source
# File lib/awsraw/s3/http_request_builder.rb, line 11 def build klass = http_request_class(s3_request) path = s3_request.uri.request_uri klass.new(path).tap do |http_request| s3_request.headers.each do |name, value| http_request[name] = value end set_content_on_request(http_request, s3_request.content) end end
Private Instance Methods
http_request_class(s3_request)
click to toggle source
# File lib/awsraw/s3/http_request_builder.rb, line 25 def http_request_class(s3_request) case s3_request.method when "GET" Net::HTTP::Get when "HEAD" Net::HTTP::Head when "PUT" Net::HTTP::Put when "POST" Net::HTTP::Post else raise "Invalid HTTP method!" end end
set_content_on_request(http_request, content)
click to toggle source
# File lib/awsraw/s3/http_request_builder.rb, line 40 def set_content_on_request(http_request, content) if content.is_a?(File) http_request.body_stream = content http_request['Content-Length'] = content.size.to_s else http_request.body = content end end