Spec-Zone.ru › Ruby 3

класс 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 1038
def initialize(status, string)
  @status = status
  @string = string
end

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

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

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

Общедоступные методы экземпляра

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

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

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

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

cram_md5_challenge() Показать исходный код
# File lib/net/smtp.rb, line 1073
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 1093
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 1067
def message
  @string.lines.first
end

Первая строка человекочитаемого текста ответа

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

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

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

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

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

Spec-Zone.ru

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