lib/ey-hmac/adapter/faraday.rb in ey-hmac-2.0.0 vs lib/ey-hmac/adapter/faraday.rb in ey-hmac-2.0.1
- old
+ new
@@ -8,20 +8,25 @@
end
def content_digest
if existing = %w[CONTENT-DIGEST CONTENT_DIGEST Content-Digest Content_Digest].inject(nil) { |r,h| r || request[:request_headers][h] }
existing
- elsif digestable = body && Digest::MD5.hexdigest(body)
- request[:request_headers]['Content-Digest'] = digestable
- else nil
+ elsif body
+ digestable = if body.respond_to?(:rewind)
+ body.rewind
+ body.read.tap { |_| body.rewind }
+ else
+ body.to_s
+ end
+
+ request[:request_headers]['Content-Digest'] = Digest::MD5.hexdigest(digestable)
end
end
def body
if request[:body] && request[:body].to_s != ""
request[:body]
- else nil
end
end
def date
existing = %w[DATE Date].inject(nil) { |r,h| r || request[h] }
@@ -31,10 +36,11 @@
def path
request[:url].path
end
def sign!(key_id, key_secret)
- %w[CONTENT-TYPE CONTENT_TYPE Content-Type Content_Type].inject(nil){|r,h| request[:request_headers][h]}
+ %w[CONTENT-TYPE CONTENT_TYPE Content-Type Content_Type].inject(nil) { |r,h| request[:request_headers][h] }
+
if options[:version]
request[:request_headers]['X-Signature-Version'] = options[:version]
end
request[:request_headers][authorization_header] = authorization(key_id, key_secret)