module ErrorHandlingResourcable
def self.included(base)
def self.included(base) base.send(:resources) do default_handler do |response| case response.status when 200...299 next when 429 unless response.headers.key?('Retry-After') && !connection.options.context.key?(:retry_max) error = DropletKit::RateLimitReached.new("#{response.status}: #{response.body}") error.limit = response.headers['RateLimit-Limit'] error.remaining = response.headers['RateLimit-Remaining'] error.reset_at = response.headers['RateLimit-Reset'] raise error end else raise DropletKit::Error, "#{response.status}: #{response.body}" end end end end