diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2009-11-23 15:29:35 -0800 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2009-11-23 15:29:35 -0800 |
commit | 671538cd6ea0bd4c463e7bf7d238a55924a8af53 (patch) | |
tree | 661710f2df243f02452846c3e85f2980acbf813a | |
parent | ca5de16ddc50b4f8d8a88e91571f5c5a2c8c751c (diff) | |
parent | 3a72923e27195983d37bdb39ef26b29cf03d3483 (diff) | |
download | rails-671538cd6ea0bd4c463e7bf7d238a55924a8af53.tar.gz rails-671538cd6ea0bd4c463e7bf7d238a55924a8af53.tar.bz2 rails-671538cd6ea0bd4c463e7bf7d238a55924a8af53.zip |
Merge commit 'mikel/master' into mail
Conflicts:
actionmailer/lib/action_mailer.rb
-rw-r--r-- | actionmailer/CHANGELOG | 14 | ||||
-rw-r--r-- | actionmailer/actionmailer.gemspec | 2 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer.rb | 1 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/base.rb | 17 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/utils.rb | 7 | ||||
-rw-r--r-- | actionmailer/test/mail_service_test.rb | 22 | ||||
-rw-r--r-- | actionmailer/test/quoting_test.rb | 4 |
7 files changed, 37 insertions, 30 deletions
diff --git a/actionmailer/CHANGELOG b/actionmailer/CHANGELOG index 0d16540661..9b07686b64 100644 --- a/actionmailer/CHANGELOG +++ b/actionmailer/CHANGELOG @@ -1,13 +1,16 @@ *Mail Integration -* Mail does not have "quoted_body", "quoted_subject" etc. All of these are accessed via body.encoded, subject.encoded etc +* Mail does not have "quoted_body", "quoted_subject" etc. All of these are accessed via body.encoded, + subject.encoded etc -* Every part of a Mail object returns an object, never a string. So Mail.body returns a Mail::Body class object, need to call #encoded or #decoded to get the string you want +* Every part of a Mail object returns an object, never a string. So Mail.body returns a Mail::Body + class object, need to call #encoded or #decoded to get the string you want * Mail::Message#set_content_type does not exist, it is simply Mail::Message#content_type -* Every mail message gets a unique message_id unless you specify one, had to change all the tests that check for - equality with expected.encoded == actual.encoded to first replace their message_ids with control values +* Every mail message gets a unique message_id unless you specify one, had to change all the tests that + check for equality with expected.encoded == actual.encoded to first replace their message_ids with + control values * Mail now has a proper concept of parts, remove the ActionMailer::Part and ActionMailer::PartContainer classes @@ -20,9 +23,6 @@ * There is no idea of a "sub_head" in Mail. A part is just a Message with some extra functionality, so it just has a "header" like a normal mail message - -* When you want to add a nested part, you now need to use "add_part(params)" instead of "part(params)" This - creates a Mail gem Part object *2.3.2 [Final] (March 15, 2009)* diff --git a/actionmailer/actionmailer.gemspec b/actionmailer/actionmailer.gemspec index 6de4986430..d5a684aa7b 100644 --- a/actionmailer/actionmailer.gemspec +++ b/actionmailer/actionmailer.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |s| s.homepage = "http://www.rubyonrails.org" s.add_dependency('actionpack', '= 3.0.pre') - s.add_dependency('mail', '~> 1.2.8') + s.add_dependency('mail', '~> 1.3.0') s.files = Dir['CHANGELOG', 'README', 'MIT-LICENSE', 'lib/**/*'] s.has_rdoc = true diff --git a/actionmailer/lib/action_mailer.rb b/actionmailer/lib/action_mailer.rb index 8fb6ad2224..0ca08e4d1f 100644 --- a/actionmailer/lib/action_mailer.rb +++ b/actionmailer/lib/action_mailer.rb @@ -40,7 +40,6 @@ module ActionMailer autoload :Quoting, 'action_mailer/quoting' autoload :TestCase, 'action_mailer/test_case' autoload :TestHelper, 'action_mailer/test_helper' - autoload :Utils, 'action_mailer/utils' end diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb index 9d7af72362..3639992ce9 100644 --- a/actionmailer/lib/action_mailer/base.rb +++ b/actionmailer/lib/action_mailer/base.rb @@ -251,7 +251,7 @@ module ActionMailer #:nodoc: # and appear last in the mime encoded message. You can also pick a different order from inside a method with # +implicit_parts_order+. class Base - include AdvAttrAccessor, Quoting, Utils + include AdvAttrAccessor, Quoting include AbstractController::RenderingController include AbstractController::LocalizedCache @@ -372,8 +372,9 @@ module ActionMailer #:nodoc: def part(params) params = {:content_type => params} if String === params if custom_headers = params.delete(:headers) - STDERR.puts("Passing custom headers with :headers => {} is deprecated. Please just pass in custom headers directly.") - params = params.merge(custom_headers) + ActiveSupport::Deprecation.warn('Passing custom headers with :headers => {} is deprecated. ' << + 'Please just pass in custom headers directly.', caller[0,10]) + params.merge!(custom_headers) end part = Mail::Part.new(params) yield part if block_given? @@ -386,7 +387,11 @@ module ActionMailer #:nodoc: params = { :content_type => params } if String === params params = { :content_disposition => "attachment", :content_transfer_encoding => "base64" }.merge(params) - params[:data] = params.delete(:body) if params[:body] + if params[:body] + ActiveSupport::Deprecation.warn('attachment :body => "string" is deprecated. To set the body of an attachment ' << + 'please use :data instead, like attachment :data => "string".', caller[0,10]) + params[:data] = params.delete(:body) + end part(params, &block) end @@ -619,11 +624,11 @@ module ActionMailer #:nodoc: if @parts.empty? main_type, sub_type = split_content_type(real_content_type) m.content_type([main_type, sub_type, ctype_attrs]) - m.body = normalize_new_lines(body) + m.body = body elsif @parts.size == 1 && @parts.first.parts.empty? main_type, sub_type = split_content_type(real_content_type) m.content_type([main_type, sub_type, ctype_attrs]) - m.body = normalize_new_lines(@parts.first.body) + m.body = @parts.first.body.encoded else @parts.each do |p| m.add_part(p) diff --git a/actionmailer/lib/action_mailer/utils.rb b/actionmailer/lib/action_mailer/utils.rb deleted file mode 100644 index 26d2e60aaf..0000000000 --- a/actionmailer/lib/action_mailer/utils.rb +++ /dev/null @@ -1,7 +0,0 @@ -module ActionMailer - module Utils #:nodoc: - def normalize_new_lines(text) - text.to_s.gsub(/\r\n?/, "\n") - end - end -end diff --git a/actionmailer/test/mail_service_test.rb b/actionmailer/test/mail_service_test.rb index 9be9a93fef..7a47a654cd 100644 --- a/actionmailer/test/mail_service_test.rb +++ b/actionmailer/test/mail_service_test.rb @@ -9,7 +9,7 @@ class FunkyPathMailer < ActionMailer::Base subject "This path has dots" from "Chad Fowler <chad@chadfowler.com>" attachment :content_type => "text/plain", - :body => "dots dots dots..." + :data => "dots dots dots..." end end @@ -144,7 +144,7 @@ class TestMailer < ActionMailer::Base end attachment :content_type => "image/jpeg", :filename => File.join(File.dirname(__FILE__), "fixtures", "attachments", "foo.jpg"), - :body => "123456789" + :data => "123456789" render :text => "plain text default" end @@ -232,7 +232,7 @@ class TestMailer < ActionMailer::Base p.part :content_type => "text/html", :body => "<b>test</b> HTML<br/>\nline #2" end - attachment :content_type => "application/octet-stream", :filename => "test.txt", :body => "test abcdefghijklmnopqstuvwxyz" + attachment :content_type => "application/octet-stream", :filename => "test.txt", :data => "test abcdefghijklmnopqstuvwxyz" end def nested_multipart_with_body(recipient) @@ -252,7 +252,7 @@ class TestMailer < ActionMailer::Base from "test@example.com" content_type "multipart/related" part :content_type => "text/html", :body => 'yo' - attachment :content_type => "image/jpeg", :filename => File.join(File.dirname(__FILE__), "fixtures", "attachments", "test.jpg"), :body => "i am not a real picture", :headers => { 'Content-ID' => '<test@test.com>' } + attachment :content_type => "image/jpeg", :filename => File.join(File.dirname(__FILE__), "fixtures", "attachments", "test.jpg"), :data => "i am not a real picture", :headers => { 'Content-ID' => '<test@test.com>' } end def unnamed_attachment(recipient) @@ -261,7 +261,7 @@ class TestMailer < ActionMailer::Base from "test@example.com" content_type "multipart/mixed" part :content_type => "text/plain", :body => "hullo" - attachment :content_type => "application/octet-stream", :body => "test abcdefghijklmnopqstuvwxyz" + attachment :content_type => "application/octet-stream", :data => "test abcdefghijklmnopqstuvwxyz" end def headers_with_nonalpha_chars(recipient) @@ -1020,9 +1020,15 @@ EOF attachment = mail.attachments.last expected = "01 Quien Te Dij\212at. Pitbull.mp3" - expected.force_encoding(Encoding::ASCII_8BIT) if expected.respond_to?(:force_encoding) - - assert_equal expected, attachment.original_filename + + if expected.respond_to?(:force_encoding) + result = attachment.original_filename.dup + expected.force_encoding(Encoding::ASCII_8BIT) + result.force_encoding(Encoding::ASCII_8BIT) + assert_equal expected, result + else + assert_equal expected, attachment.original_filename + end end def test_decode_message_with_unknown_charset diff --git a/actionmailer/test/quoting_test.rb b/actionmailer/test/quoting_test.rb index 4e86d55285..32f34f6028 100644 --- a/actionmailer/test/quoting_test.rb +++ b/actionmailer/test/quoting_test.rb @@ -57,6 +57,10 @@ class QuotingTest < Test::Unit::TestCase CODE unquoted = Mail::Encodings.unquote_and_convert_to(result, nil) + + unquoted.force_encoding(Encoding::ASCII_8BIT) if unquoted.respond_to?(:force_encoding) + original.force_encoding(Encoding::ASCII_8BIT) if original.respond_to?(:force_encoding) + assert_equal unquoted, original end |