2013-02-27 3 views
0

Я использую MailFactory для отправки электронной почты и столкнулся с этим странным предложением, которого я раньше не видел. Я из PHP, и занимаюсь Ruby сейчас около полутора недель.Что | smtp | бит в следующем фрагменте Ruby?

Is the | smtp | переменная значение, которое возвращается Net :: SMTP.start, а затем используется в блоке {}?

response = Net::SMTP.start(cfg['host'], 25, cfg['from_domain'], cfg['username'], cfg['password'], :plain) { 
    | smtp | 
    recipients = cfg['mail_targets']['errors'] 
    smtp.send_message(mail.to_s, mail.from, [recipients, mail]) 
} 

ответ

1

Это аргумент, переданный от start в блок.

Когда эти методы вызывают с блоком, вновь запущенный SMTP-объект передается блоку и автоматически закрывается после завершения блочного вызова. В противном случае ответственность за закрытие сеанса завершается.

http://apidock.com/ruby/Net/SMTP

Смежные вопросы