Spec-Zone.ru › Ruby 2.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 1009
def initialize(status, string)
  @status = status
  @string = string
end

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

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

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

Публичные методы экземпляра

capabilities() Показать исходный код
# File lib/net/smtp.rb, line 1052
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 1033
def continue?
  status_type_char() == '3'
end

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

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

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

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

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

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

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

success?() Показать исходный код
# File lib/net/smtp.rb, line 1027
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