Sha256: b6f4ff57183cc686b06a0a90b9e6ced725225f50bf2cd78d513abbc5726ee3d2

Contents?: true

Size: 1.32 KB

Versions: 16

Compression:

Stored size: 1.32 KB

Contents

module Rapa
  module Responses
    class BaseResponse
      include ::Enumerable

      # @param faraday_response [Faraday::Response]
      def initialize(faraday_response)
        @faraday_response = faraday_response
      end

      # @return [String]
      def body
        faraday_response.body
      end

      # @note Implementation for Enumerable
      def each(&block)
        resources.each(&block)
      end

      # @return [Faraday::Utils::Headers]
      def headers
        faraday_response.headers
      end

      # @return [Array<Rapa::Resources::ItemResource>]
      def resources
        sources.map do |source|
          resource_class.new(source)
        end
      end

      # @return [Integer]
      def status
        faraday_response.status
      end

      private

      # @private
      # @return [Faraday::Response]
      def faraday_response
        @faraday_response
      end

      # @return [Class]
      def resource_class
        raise ::NotImplementedError
      end

      # @private
      def source_or_sources
        raise ::NotImplementedError
      end

      # @private
      # @return [Array<Hash>]
      def sources
        case source_or_sources
        when ::Array
          source_or_sources
        when nil
          []
        else
          [source_or_sources]
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rapa-0.5.7 lib/rapa/responses/base_response.rb
rapa-0.5.6 lib/rapa/responses/base_response.rb
rapa-0.5.5 lib/rapa/responses/base_response.rb
rapa-0.5.4 lib/rapa/responses/base_response.rb
rapa-0.5.3 lib/rapa/responses/base_response.rb
rapa-0.5.2 lib/rapa/responses/base_response.rb
rapa-0.5.1 lib/rapa/responses/base_response.rb
rapa-0.5.0 lib/rapa/responses/base_response.rb
rapa-0.4.3 lib/rapa/responses/base_response.rb
rapa-0.4.2 lib/rapa/responses/base_response.rb
rapa-0.4.1 lib/rapa/responses/base_response.rb
rapa-0.4.0 lib/rapa/responses/base_response.rb
rapa-0.3.3 lib/rapa/responses/base_response.rb
rapa-0.3.2 lib/rapa/responses/base_response.rb
rapa-0.3.1 lib/rapa/responses/base_response.rb
rapa-0.3.0 lib/rapa/responses/base_response.rb