Sha256: adb4855337cddfe42bd9472e3e4f28b7901c74a3f9f7e68e57ffa54b83e4dd7e

Contents?: true

Size: 845 Bytes

Versions: 12

Compression:

Stored size: 845 Bytes

Contents

require "forwardable"

module Duracloud
  class Response
    extend Forwardable

    attr_reader :original_response

    delegate [:header, :body, :code, :ok?, :redirect?, :status, :reason] => :original_response,
             :content_type => :header,
             [:size, :empty?] => :body

    def_delegator :header, :request_uri, :url
    def_delegator :header, :request_method

    def initialize(original_response)
      @original_response = original_response
    end

    def error?
      !(ok? || redirect?)
    end

    def plain_text?
      content_type == "text/plain"
    end

    def has_body?
      !empty?
    end

    def headers
      header.all.each_with_object({}) do |(name, value), memo|
        memo[name] ||= []
        memo[name] << value
      end
    end

    def md5
      header["content-md5"].first
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
duracloud-client-0.5.0 lib/duracloud/response.rb
duracloud-client-0.4.0 lib/duracloud/response.rb
duracloud-client-0.3.0 lib/duracloud/response.rb
duracloud-client-0.2.0 lib/duracloud/response.rb
duracloud-client-0.1.5 lib/duracloud/response.rb
duracloud-client-0.1.4 lib/duracloud/response.rb
duracloud-client-0.1.3 lib/duracloud/response.rb
duracloud-client-0.1.2 lib/duracloud/response.rb
duracloud-client-0.1.1 lib/duracloud/response.rb
duracloud-client-0.1.0 lib/duracloud/response.rb
duracloud-client-0.0.3 lib/duracloud/response.rb
duracloud-client-0.0.2 lib/duracloud/response.rb