class Ey::Hmac::Adapter::Faraday

Public Instance Methods

authorization_signature() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 64
def authorization_signature
  find_header(*%w[Authorization AUTHORIZATION])
end
body() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 33
def body
  if request[:body] && request[:body].to_s != ""
    request[:body]
  end
end
content_digest() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 12
def content_digest
  @content_digest ||= find_header(
    *%w[CONTENT-DIGEST CONTENT_DIGEST Content-Digest Content_Digest]
  )
end
content_type() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 6
def content_type
  @content_type ||= find_header(
    *%w[CONTENT-TYPE CONTENT_TYPE Content-Type Content_Type]
  )
end
date() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 39
def date
  find_header(*%w[DATE Date])
end
method() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 2
def method
  request[:method].to_s.upcase
end
path() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 49
def path
  request[:url].path
end
set_content_digest() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 18
def set_content_digest
  return if content_digest

  digestable = if body.respond_to?(:rewind)
                 body.rewind
                 body.read.tap { |_| body.rewind }
               else
                 body.to_s
               end

  if digestable && digestable != ""
    @content_digest = request[:request_headers]['Content-Digest'] = Digest::MD5.hexdigest(digestable)
  end
end
set_date() click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 43
def set_date
  unless date
    request[:request_headers]['Date'] = Time.now.httpdate
  end
end
sign!(key_id, key_secret) click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 53
def sign!(key_id, key_secret)
  set_content_digest
  set_date

  if options[:version]
    request[:request_headers]['X-Signature-Version'] = options[:version]
  end

  request[:request_headers][authorization_header] = authorization(key_id, key_secret)
end

Private Instance Methods

find_header(*keys) click to toggle source
# File lib/ey-hmac/adapter/faraday.rb, line 70
def find_header(*keys)
  value = nil
  keys.find { |k| value = request[:request_headers][k] }
  value
end