aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer
diff options
context:
space:
mode:
authorEugene Kenny <elkenny@gmail.com>2017-01-31 03:36:23 +0000
committerJeremy Daer <jeremydaer@gmail.com>2017-01-30 22:20:47 -0700
commitebededb3726a8143a4372fdf19ad10fe9fe2e233 (patch)
treeb8e5d788c285941d2df2c7a200abdb73814abe23 /actionmailer
parentd1e06546499c858db6e16f60c9f0bb7a3fda0a41 (diff)
downloadrails-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')
-rw-r--r--actionmailer/lib/action_mailer/inline_preview_interceptor.rb6
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