Sha256: 81ba41baa5cbdcc2e55ca19c7f0fe5ac9706aa7e3d992c6be8d82e078882e90c

Contents?: true

Size: 795 Bytes

Versions: 12

Compression:

Stored size: 795 Bytes

Contents

require 'twitter/error'

module Twitter
  class Error
    # Raised when Twitter returns a 4xx HTTP status code or there's an error in Faraday
    class ClientError < Twitter::Error

      # Create a new error from an HTTP environment
      #
      # @param response [Hash]
      # @return [Twitter::Error]
      def self.from_response(response={})
        new(parse_error(response[:body]), response[:response_headers])
      end

    private

      def self.parse_error(body)
        if body.nil?
          ''
        elsif body[:error]
          body[:error]
        elsif body[:errors]
          first = Array(body[:errors]).first
          if first.kind_of?(Hash)
            first[:message].chomp
          else
            first.chomp
          end
        end
      end

    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
twitter-4.5.0 lib/twitter/error/client_error.rb
twitter-4.4.4 lib/twitter/error/client_error.rb
twitter-4.4.3 lib/twitter/error/client_error.rb
twitter-4.4.2 lib/twitter/error/client_error.rb
twitter-4.4.1 lib/twitter/error/client_error.rb
twitter-4.4.0 lib/twitter/error/client_error.rb
twitter-4.3.0 lib/twitter/error/client_error.rb
twitter-4.2.0 lib/twitter/error/client_error.rb
twitter-4.1.2 lib/twitter/error/client_error.rb
twitter-4.1.1 lib/twitter/error/client_error.rb
twitter-4.1.0 lib/twitter/error/client_error.rb
twitter-4.0.0 lib/twitter/error/client_error.rb