Sha256: 2bda13cdd3928738ebd72f1e31c18baa3f86e8c8efd26d4a435ef7a8abf1cc03

Contents?: true

Size: 1.33 KB

Versions: 16

Compression:

Stored size: 1.33 KB

Contents

module ApiAuth

  module RequestDrivers # :nodoc:

    class CurbRequest # :nodoc:

      include ApiAuth::Helpers

      def initialize(request)
        @request = request
        @headers = fetch_headers
        true
      end

      def set_auth_header(header)
        @request.headers.merge!({ "Authorization" => header })
        @headers = fetch_headers
        @request
      end

      def populate_content_md5
        nil #doesn't appear to be possible
      end

      def md5_mismatch?
        false
      end

      def fetch_headers
        capitalize_keys @request.headers
      end

      def content_type
        value = find_header(%w(CONTENT-TYPE CONTENT_TYPE HTTP_CONTENT_TYPE))
        value.nil? ? "" : value
      end

      def content_md5
        value = find_header(%w(CONTENT-MD5 CONTENT_MD5))
        value.nil? ? "" : value
      end

      def request_uri
        @request.url
      end

      def set_date
        @request.headers.merge!({ "DATE" => Time.now.utc.httpdate })
      end

      def timestamp
        value = find_header(%w(DATE HTTP_DATE))
        value.nil? ? "" : value
      end

      def authorization_header
        find_header %w(Authorization AUTHORIZATION HTTP_AUTHORIZATION)
      end

    private

      def find_header(keys)
        keys.map {|key| @headers[key] }.compact.first
      end

    end

  end

end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
api-auth-1.3.2 lib/api_auth/request_drivers/curb.rb
api-auth-1.3.1 lib/api_auth/request_drivers/curb.rb
api-auth-1.3.0 lib/api_auth/request_drivers/curb.rb
api-auth-1.2.6 lib/api_auth/request_drivers/curb.rb
api-auth-1.2.5 lib/api_auth/request_drivers/curb.rb
api-auth-1.2.4 lib/api_auth/request_drivers/curb.rb
api-auth-1.2.3 lib/api_auth/request_drivers/curb.rb
api-auth-1.2.2 lib/api_auth/request_drivers/curb.rb
api-auth-1.2.1 lib/api_auth/request_drivers/curb.rb
api-auth-1.2.0 lib/api_auth/request_drivers/curb.rb
jmoses_api-auth-1.0.5 lib/api_auth/request_drivers/curb.rb
api-auth-1.1.0 lib/api_auth/request_drivers/curb.rb
jmoses_api-auth-1.0.4 lib/api_auth/request_drivers/curb.rb
api-auth-1.0.3 lib/api_auth/request_drivers/curb.rb
api-auth-1.0.2 lib/api_auth/request_drivers/curb.rb
api-auth-1.0.1 lib/api_auth/request_drivers/curb.rb