<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>actionmailer/lib/action_mailer/vendor/text_format.rb</filename>
    </added>
    <added>
      <filename>actionmailer/lib/action_mailer/vendor/tmail.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -31,22 +31,32 @@ rescue LoadError
   end
 end
 
-require 'action_mailer/vendor'
-require 'tmail'
-
-require 'action_mailer/base'
-require 'action_mailer/helpers'
-require 'action_mailer/mail_helper'
-require 'action_mailer/quoting'
-require 'action_mailer/test_helper'
+module ActionMailer
+  def self.load_all!
+    [Base, Part, ::Text::Format, ::Net::SMTP]
+  end
 
-require 'net/smtp'
+  autoload :AdvAttrAccessor, 'action_mailer/adv_attr_accessor'
+  autoload :Base, 'action_mailer/base'
+  autoload :Helpers, 'action_mailer/helpers'
+  autoload :Part, 'action_mailer/part'
+  autoload :PartContainer, 'action_mailer/part_container'
+  autoload :Quoting, 'action_mailer/quoting'
+  autoload :TestCase, 'action_mailer/test_case'
+  autoload :TestHelper, 'action_mailer/test_helper'
+  autoload :Utils, 'action_mailer/utils'
+end
 
-ActionMailer::Base.class_eval do
-  include ActionMailer::Quoting
-  include ActionMailer::Helpers
+module Text
+  autoload :Format, 'action_mailer/vendor/text_format'
+end
 
-  helper MailHelper
+module Net
+  autoload :SMTP, 'net/smtp'
 end
 
-silence_warnings { TMail::Encoder.const_set(&quot;MAX_LINE_LEN&quot;, 200) }
+autoload :MailHelper, 'action_mailer/mail_helper'
+autoload :TMail, 'action_mailer/vendor/tmail'
+
+# TODO: Don't explicitly load entire lib
+ActionMailer.load_all!</diff>
      <filename>actionmailer/lib/action_mailer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,3 @@
-require 'action_mailer/adv_attr_accessor'
-require 'action_mailer/part'
-require 'action_mailer/part_container'
-require 'action_mailer/utils'
 require 'tmail/net'
 
 module ActionMailer #:nodoc:
@@ -245,7 +241,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, PartContainer
+    include AdvAttrAccessor, PartContainer, Quoting, Utils
     if Object.const_defined?(:ActionController)
       include ActionController::UrlWriter
       include ActionController::Layout
@@ -648,11 +644,11 @@ module ActionMailer #:nodoc:
 
         if @parts.empty?
           m.set_content_type(real_content_type, nil, ctype_attrs)
-          m.body = Utils.normalize_new_lines(body)
+          m.body = normalize_new_lines(body)
         else
           if String === body
             part = TMail::Mail.new
-            part.body = Utils.normalize_new_lines(body)
+            part.body = normalize_new_lines(body)
             part.set_content_type(real_content_type, nil, ctype_attrs)
             part.set_content_disposition &quot;inline&quot;
             m.parts &lt;&lt; part
@@ -698,4 +694,9 @@ module ActionMailer #:nodoc:
         deliveries &lt;&lt; mail
       end
   end
+
+  Base.class_eval do
+    include Helpers
+    helper MailHelper
+  end
 end</diff>
      <filename>actionmailer/lib/action_mailer/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-require 'text/format'
-
 module MailHelper
   # Uses Text::Format to take the text and format it, indented two spaces for
   # each line, and wrapped at 72 columns.</diff>
      <filename>actionmailer/lib/action_mailer/mail_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,10 @@
-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
@@ -64,7 +59,7 @@ module ActionMailer
           when &quot;base64&quot; then
             part.body = TMail::Base64.folding_encode(body)
           when &quot;quoted-printable&quot;
-            part.body = [Utils.normalize_new_lines(body)].pack(&quot;M*&quot;)
+            part.body = [normalize_new_lines(body)].pack(&quot;M*&quot;)
           else
             part.body = body
         end
@@ -102,7 +97,6 @@ module ActionMailer
     end
 
     private
-
       def squish(values={})
         values.delete_if { |k,v| v.nil? }
       end</diff>
      <filename>actionmailer/lib/action_mailer/part.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ module ActionMailer
   end
 
   class TestCase &lt; ActiveSupport::TestCase
-    include ActionMailer::Quoting
+    include Quoting, TestHelper
 
     setup :initialize_test_deliveries
     setup :set_expected_mail</diff>
      <filename>actionmailer/lib/action_mailer/test_case.rb</filename>
    </modified>
    <modified>
      <diff>@@ -58,6 +58,7 @@ module ActionMailer
   end
 end
 
+# TODO: Deprecate this
 module Test
   module Unit
     class TestCase</diff>
      <filename>actionmailer/lib/action_mailer/test_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,5 @@ module ActionMailer
     def normalize_new_lines(text)
       text.to_s.gsub(/\r\n?/, &quot;\n&quot;)
     end
-    module_function :normalize_new_lines
   end
 end</diff>
      <filename>actionmailer/lib/action_mailer/utils.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>actionmailer/lib/action_mailer/vendor.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>04d2d043ca9c59ab93522f1d8c0810cf47f05b23</id>
    </parent>
  </parents>
  <author>
    <name>Joshua Peek</name>
    <email>josh@joshpeek.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/e201fc750bf4b7dff1875b7fcdd47f1686ef2052</url>
  <id>e201fc750bf4b7dff1875b7fcdd47f1686ef2052</id>
  <committed-date>2008-11-23T10:27:25-08:00</committed-date>
  <authored-date>2008-11-23T10:27:25-08:00</authored-date>
  <message>use autoload instead of explicit requires for ActionMailer</message>
  <tree>ced60e6ae52de148c8c0a7673dc65a73b03d1c4f</tree>
  <committer>
    <name>Joshua Peek</name>
    <email>josh@joshpeek.com</email>
  </committer>
</commit>
