Создание основного функция успеха для HTTP


Мне надоело каждый раз, когда я делаю HTTP-запрос подтверждения, что ответ был успех. Я сделал много:

if response.class == Net::HTTPOK

или

if response.is_a? Net::HTTPSuccess

Я хотел что-то немного красивее, поэтому я придумал следующее. Я не пишу много класс расширениями как это так, я хотела что-то сделать.

require 'net/http'
class Net::HTTPResponse
  def success?
    return false if ! self.is_a? Net::HTTPSuccess
    return true
  end
end

Теперь, когда файл включается, что я могу сказать:

if response.success?


130
3
задан 28 марта 2018 в 07:03 Источник Поделиться
Комментарии
1 ответ

Хотя ваше решение будет работать, я бы пошел на что-то вроде этого:

class Net::HTTPResponse
def success?
false
end
end

class Net::HTTPSuccess
def success?
true
end
end

Если вы держите ваше решение, вы могли бы упростить это:

class Net::HTTPResponse
def success?
self.is_a? Net::HTTPSuccess
end
end

2
ответ дан 29 марта 2018 в 03:03 Источник Поделиться