Sha256: a7c8b5c5d93306bf74f7a2c52b0a28fdaa2f7c5e89d65cf09cd59d1d9ca37be8

Contents?: true

Size: 1.05 KB

Versions: 10

Compression:

Stored size: 1.05 KB

Contents

module Passworks
  class Response

    attr_reader :client, :response, :data

    def initialize(client, response)
      @client     = client
      @response   = response
      @data       = response.body
    end

    def paginated?
      (!headers['x-total-pages'].nil?) && (headers['x-total-pages'].to_i > 1)
    end

    def next_page?
      !headers['x-next-page'].nil?
    end

    def next_page
      headers['x-next-page'].to_i if next_page?
    end

    def previous_page?
      !headers['x-prev-page'].nil?
    end

    def previous_page
      headers['x-prev-page'].to_i if previous_page?
    end

    def http_status
      @response.status
    end

    def response
      @response
    end

    def ok?
      @response.success?
    end

    def headers
      @response.env[:response_headers] || {}
    end

    def size
      return headers['x-total'].to_i unless headers['x-total'].nil?
      return data.size if data.is_a?(Array)
      return 0
    end

    def next_page_url
      return nil unless next_page?
      params = { page: next_page }
    end

  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
passworks-2.0.7 lib/passworks/response.rb
passworks-2.0.6 lib/passworks/response.rb
passworks-2.0.5 lib/passworks/response.rb
passworks-2.0.4 lib/passworks/response.rb
passworks-2.0.3 lib/passworks/response.rb
passworks-2.0.2 lib/passworks/response.rb
passworks-2.0.1 lib/passworks/response.rb
passworks-2.0.0 lib/passworks/response.rb
passworks-0.0.4 lib/passworks/response.rb
passworks-0.0.3 lib/passworks/response.rb