mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
split process
from mailer instantiation
this allows us to construct mailer objects without possibly disastrous side-effects.
This commit is contained in:
parent
d2315d0c3b
commit
e76c38ef10
2 changed files with 6 additions and 5 deletions
|
@ -441,8 +441,6 @@ module ActionMailer
|
|||
|
||||
helper ActionMailer::MailHelper
|
||||
|
||||
private_class_method :new #:nodoc:
|
||||
|
||||
class_attribute :default_params
|
||||
self.default_params = {
|
||||
mime_version: "1.0",
|
||||
|
@ -580,11 +578,10 @@ module ActionMailer
|
|||
# will be initialized according to the named method. If not, the mailer will
|
||||
# remain uninitialized (useful when you only need to invoke the "receive"
|
||||
# method, for instance).
|
||||
def initialize(method_name=nil, *args)
|
||||
def initialize
|
||||
super()
|
||||
@_mail_was_called = false
|
||||
@_message = Mail.new
|
||||
process(method_name, *args) if method_name
|
||||
end
|
||||
|
||||
def process(method_name, *args) #:nodoc:
|
||||
|
|
|
@ -21,7 +21,11 @@ module ActionMailer
|
|||
end
|
||||
|
||||
def __getobj__ #:nodoc:
|
||||
@obj ||= @mailer.send(:new, @mail_method, *@args).message
|
||||
@obj ||= begin
|
||||
mailer = @mailer.new
|
||||
mailer.process @mail_method, *@args
|
||||
mailer.message
|
||||
end
|
||||
end
|
||||
|
||||
def __setobj__(obj) #:nodoc:
|
||||
|
|
Loading…
Reference in a new issue