Spec-Zone.ru › Ruby 2.5

класс Net::SMTP::Response

Родитель:
Объект

Этот класс представляет собой ответ, полученный от сервера SMTP. Экземпляры этого класса создаются классом SMTP; их не следует создавать напрямую пользователю. Для получения дополнительной информации об ответах SMTP, см. раздел 4.2 RFC 5321

Атрибуты

status[R]

Трехзначный код ответа SMTP

string[R]

Текст ответа SMTP, понятный человеку

Открытые методы класса

new(status, string) Показать исходный код
# File lib/net/smtp.rb, line 1003
def initialize(status, string)
  @status = status
  @string = string
end

Создает новый экземпляр класса Response и задаёт атрибуты status и string

parse(str) Показать исходный код
# File lib/net/smtp.rb, line 997
def self.parse(str)
  new(str[0,3], str)
end

Парсит полученный ответ и разделяет код ответа и текст ответа, понятный человеку

Открытые методы экземпляра

capabilities() Показать исходный код
# File lib/net/smtp.rb, line 1046
def capabilities
  return {} unless @string[3, 1] == '-'
  h = {}
  @string.lines.drop(1).each do |line|
    k, *v = line[4..-1].chomp.split
    h[k] = v
  end
  h
end

Возвращает хеш текста ответа, понятного человеку, если ответ состоит из нескольких строк. Первая строка не возвращается. Ключ хеша — первое слово, значение — массив, где каждое последующее слово — значение в массиве

continue?() Показать исходный код
# File lib/net/smtp.rb, line 1027
def continue?
  status_type_char() == '3'
end

Определяет, является ли полученный ответ положительным промежуточным ответом (код ответа 3xx)

cram_md5_challenge() Показать исходный код
# File lib/net/smtp.rb, line 1038
def cram_md5_challenge
  @string.split(/ /)[1].unpack1('m')
end

Создаёт вызов CRAM-MD5. Дополнительную информацию о CRAM-MD5 можно найти на Википедии: en.wikipedia.org/wiki/CRAM-MD5

exception_class() Показать исходный код
# File lib/net/smtp.rb, line 1058
def exception_class
  case @status
  when /\A4/  then SMTPServerBusy
  when /\A50/ then SMTPSyntaxError
  when /\A53/ then SMTPAuthenticationError
  when /\A5/  then SMTPFatalError
  else             SMTPUnknownError
  end
end

Определяет, была ли ошибка, и поднимает соответствующую ошибку на основе кода ответа

message() Показать исходный код
# File lib/net/smtp.rb, line 1032
def message
  @string.lines.first
end

Первая строка текста ответа, понятного человеку

status_type_char() Показать исходный код
# File lib/net/smtp.rb, line 1015
def status_type_char
  @status[0, 1]
end

Получает первую цифру кода ответа для определения типа состояния

success?() Показать исходный код
# File lib/net/smtp.rb, line 1021
def success?
  status_type_char() == '2'
end

Определяет, является ли полученный ответ положительным завершающим ответом (код ответа 2xx)

Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API