Method: ActionMailer::DeliveryMethods::ClassMethods#wrap_delivery_behavior

Defined in:
actionmailer/lib/action_mailer/delivery_methods.rb

#wrap_delivery_behavior(mail, method = nil, options = nil) ⇒ Object

:nodoc:



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'actionmailer/lib/action_mailer/delivery_methods.rb', line 57

def wrap_delivery_behavior(mail, method = nil, options = nil) # :nodoc:
  method ||= delivery_method
  mail.delivery_handler = self

  case method
  when NilClass
    raise "Delivery method cannot be nil"
  when Symbol
    if klass = delivery_methods[method]
      mail.delivery_method(klass, (send(:"#{method}_settings") || {}).merge(options || {}))
    else
      raise "Invalid delivery method #{method.inspect}"
    end
  else
    mail.delivery_method(method)
  end

  mail.perform_deliveries    = perform_deliveries
  mail.raise_delivery_errors = raise_delivery_errors
end