vendor/rails/actionmailer/lib/action_mailer/part.rb in radiant-0.7.2 vs vendor/rails/actionmailer/lib/action_mailer/part.rb in radiant-0.8.0

- old
+ new

@@ -1,17 +1,12 @@ -require 'action_mailer/adv_attr_accessor' -require 'action_mailer/part_container' -require 'action_mailer/utils' - module ActionMailer # Represents a subpart of an email message. It shares many similar # attributes of ActionMailer::Base. Although you can create parts manually # and add them to the +parts+ list of the mailer, it is easier # to use the helper methods in ActionMailer::PartContainer. class Part - include ActionMailer::AdvAttrAccessor - include ActionMailer::PartContainer + include AdvAttrAccessor, PartContainer, Utils # Represents the body of the part, as a string. This should not be a # Hash (like ActionMailer::Base), but if you want a template to be rendered # into the body of a subpart you can do it with the mailer's +render+ method # and assign the result here. @@ -62,11 +57,11 @@ part.content_transfer_encoding = transfer_encoding || "quoted-printable" case (transfer_encoding || "").downcase when "base64" then part.body = TMail::Base64.folding_encode(body) when "quoted-printable" - part.body = [Utils.normalize_new_lines(body)].pack("M*") + part.body = [normalize_new_lines(body)].pack("M*") else part.body = body end # Always set the content_type after setting the body and or parts! @@ -91,19 +86,21 @@ @parts.each do |p| prt = (TMail::Mail === p ? p : p.to_mail(defaults)) part.parts << prt end - part.set_content_type(real_content_type, nil, ctype_attrs) if real_content_type =~ /multipart/ + if real_content_type =~ /multipart/ + ctype_attrs.delete 'charset' + part.set_content_type(real_content_type, nil, ctype_attrs) + end end headers.each { |k,v| part[k] = v } part end private - def squish(values={}) values.delete_if { |k,v| v.nil? } end end end