diff options
author | Eugene Kenny <elkenny@gmail.com> | 2017-01-31 03:36:23 +0000 |
---|---|---|
committer | Jeremy Daer <jeremydaer@gmail.com> | 2017-01-30 22:20:47 -0700 |
commit | ebededb3726a8143a4372fdf19ad10fe9fe2e233 (patch) | |
tree | b8e5d788c285941d2df2c7a200abdb73814abe23 /actionmailer/lib/action_mailer | |
parent | d1e06546499c858db6e16f60c9f0bb7a3fda0a41 (diff) | |
download | rails-ebededb3726a8143a4372fdf19ad10fe9fe2e233.tar.gz rails-ebededb3726a8143a4372fdf19ad10fe9fe2e233.tar.bz2 rails-ebededb3726a8143a4372fdf19ad10fe9fe2e233.zip |
Don't mutate raw_source in mailer preview interceptor
The raw_source method is documented as returning the exact value that
was used to create the body; mutating it breaks that contract.
Additionally, if the value used to create the body is blank, raw_source
returns a frozen string which causes the interceptor to raise an error.
Diffstat (limited to 'actionmailer/lib/action_mailer')
-rw-r--r-- | actionmailer/lib/action_mailer/inline_preview_interceptor.rb | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/actionmailer/lib/action_mailer/inline_preview_interceptor.rb b/actionmailer/lib/action_mailer/inline_preview_interceptor.rb index 9087d335fa..980415afe0 100644 --- a/actionmailer/lib/action_mailer/inline_preview_interceptor.rb +++ b/actionmailer/lib/action_mailer/inline_preview_interceptor.rb @@ -26,7 +26,7 @@ module ActionMailer def transform! #:nodoc: return message if html_part.blank? - html_source.gsub!(PATTERN) do |match| + html_part.body = html_part.decoded.gsub(PATTERN) do |match| if part = find_part(match[9..-2]) %[src="#{data_url(part)}"] else @@ -46,10 +46,6 @@ module ActionMailer @html_part ||= message.html_part end - def html_source - html_part.body.raw_source - end - def data_url(part) "data:#{part.mime_type};base64,#{strict_encode64(part.body.raw_source)}" end |