Sha256: eb65547a63e37cb3113fc73a0dce7d0a0587662e4fbc007efd135594e20188ef

Contents?: true

Size: 855 Bytes

Versions: 2

Compression:

Stored size: 855 Bytes

Contents

module Ifns
  module Responses
    class Base
      attr_reader :response, :cached, :id

      delegate :body, :status, to: :response

      def initialize(response)
        @response = response
      end

      def valid?
        good?
      end

      def invalid?
        incorrect_fpd? || incorrect_params?
      end

      def retry?
        gone? || accepted? || not_found?
      end

      def good?
        status == 200
      end

      def gone?
        status == 410
      end

      def internal_error?
        status >= 500
      end

      def not_found?
        status == 404
      end

      def accepted?
        status == 202
      end

      def incorrect_params?
        status == 400
      end

      def rate_limit_exceeded?
        status == 429
      end

      def incorrect_fpd?
        status == 406
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ifns-0.3.3 lib/ifns/responses/base.rb
ifns-0.3.0 lib/ifns/responses/base.rb