<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>test/app_root/vendor/plugins/plugin_tracker/init.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,7 @@
 == master
 
+* Add compatibility with has_messages 0.4.0 / Rails 2.3
+
 == 0.2.1 / 2009-01-11
 
 * Add compatibility with has_messages 0.3.1 / state_machine 0.5.0</diff>
      <filename>CHANGELOG.rdoc</filename>
    </modified>
    <modified>
      <diff>@@ -23,16 +23,17 @@ Source
 
 == Description
 
-Emailing between users and other parts of a system is a fairly common feature in
-web applications, especially for those that support social networking.  Emailing
-doesn't necessarily need to be between users, but can also act as a way for the
-web application to send notices and other notifications to users.
+Emailing between users and other parts of a system is a fairly common feature
+in web applications, especially for those that support social networking.
+Emailing doesn't necessarily need to be between users, but can also act as a
+way for the web application to send notices and other notifications to users.
 
 Rails already provides ActionMailer as a way of sending emails.  However, the
-framework does not provide an easy way to persist emails, track their status, and
-process them asynchronously.  Designing and building a framework that supports this
-can be complex and takes away from the business focus.  This plugin can help ease
-that process by demonstrating a complete implementation of these features.
+framework does not provide an easy way to persist emails, track their status,
+and process them asynchronously.  Designing and building a framework that
+supports this can be complex and takes away from the business focus.  This
+plugin can help ease that process by demonstrating a reference implementation
+of these features.
 
 == Usage
 
@@ -90,7 +91,6 @@ To run against a specific version of Rails:
 
 == Dependencies
 
-* Rails 2.1 or later
+* Rails 2.3 or later
 * has_messages[http://github.com/pluginaweek/has_messages]
 * state_machine[http://github.com/pluginaweek/state_machine]
-* plugins_plus[http://github.com/pluginaweek/plugins_plugins] (optional if app files are copied to your project tree)</diff>
      <filename>README.rdoc</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@ spec = Gem::Specification.new do |s|
   s.require_path      = 'lib'
   s.has_rdoc          = true
   s.test_files        = Dir['test/**/*_test.rb']
-  s.add_dependency    'has_messages', '&gt;= 0.3.1'
+  s.add_dependency    'has_messages', '&gt;= 0.4.0'
   s.add_dependency    'validates_as_email_address', '&gt;= 0.0.2'
   
   s.author            = 'Aaron Pfeifer'</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -17,10 +17,9 @@
 class EmailAddress &lt; ActiveRecord::Base
   has_emails
   
-  validates_presence_of       :spec
-  validates_as_email_address  :spec
-  validates_uniqueness_of     :spec,
-                                :scope =&gt; 'name'
+  validates_presence_of :spec
+  validates_as_email_address :spec
+  validates_uniqueness_of :spec, :scope =&gt; 'name'
   
   class &lt;&lt; self
     # Finds or create an email address based on the given value</diff>
      <filename>app/models/email_address.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,8 @@ module HasEmails
     # 
     # == Creating new emails
     # 
-    # To create a new email, the +emails+ association should be used, for example:
+    # To create a new email, the +emails+ association should be used.  For
+    # example:
     # 
     #   address = EmailAddress.find(123)
     #   email = user.emails.build</diff>
      <filename>lib/has_emails.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,10 @@
 require 'config/boot'
-require &quot;#{File.dirname(__FILE__)}/../../../../plugins_plus/boot&quot;
 
 Rails::Initializer.run do |config|
   config.plugin_paths &lt;&lt; '..'
-  config.plugins = %w(plugins_plus state_machine has_messages validates_as_email_address has_emails)
+  config.plugins = %w(plugin_tracker state_machine has_messages validates_as_email_address has_emails)
   config.cache_classes = false
   config.whiny_nils = true
   config.action_mailer.delivery_method = :test
+  config.action_controller.session = {:key =&gt; 'rails_session', :secret =&gt; 'd229e4d22437432705ab3985d4d246'}
 end</diff>
      <filename>test/app_root/config/environment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,18 @@
 class MigrateHasMessagesToVersion2 &lt; ActiveRecord::Migration
   def self.up
-    Rails::Plugin.find(:has_messages).migrate(2)
+    ActiveRecord::Migrator.new(:up, &quot;#{directory}/db/migrate&quot;, 0).migrations.each do |migration|
+      migration.migrate(:up)
+    end
   end
   
   def self.down
-    Rails::Plugin.find(:has_messages).migrate(0)
+    ActiveRecord::Migrator.new(:up, &quot;#{directory}/db/migrate&quot;, 0).migrations.each do |migration|
+      migration.migrate(:down)
+    end
   end
+  
+  private
+    def self.directory
+      Rails.plugins.find {|plugin| plugin.name == 'has_messages'}.directory
+    end
 end</diff>
      <filename>test/app_root/db/migrate/001_migrate_has_messages_to_version_2.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,13 @@
 class MigrateHasEmailsToVersion1 &lt; ActiveRecord::Migration
   def self.up
-    Rails::Plugin.find(:has_emails).migrate(1)
+    ActiveRecord::Migrator.new(:up, &quot;#{Rails.root}/../../db/migrate&quot;, 0).migrations.each do |migration|
+      migration.migrate(:up)
+    end
   end
   
   def self.down
-    Rails::Plugin.find(:has_emails).migrate(0)
+    ActiveRecord::Migrator.new(:up, &quot;#{Rails.root}/../../db/migrate&quot;, 0).migrations.each do |migration|
+      migration.migrate(:down)
+    end
   end
 end</diff>
      <filename>test/app_root/db/migrate/002_migrate_has_emails_to_version_1.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
 
-class EmailAddressByDefaultFunctionalTest &lt; Test::Unit::TestCase
+class EmailAddressByDefaultFunctionalTest &lt; ActiveSupport::TestCase
   def setup
     @email_address = create_email_address
   end
@@ -22,7 +22,7 @@ class EmailAddressByDefaultFunctionalTest &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressFunctionalTest &lt; Test::Unit::TestCase
+class EmailAddressFunctionalTest &lt; ActiveSupport::TestCase
   def setup
     @email_address = create_email_address
   end
@@ -40,7 +40,7 @@ class EmailAddressFunctionalTest &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressWithUnsentEmails &lt; Test::Unit::TestCase
+class EmailAddressWithUnsentEmails &lt; ActiveSupport::TestCase
   def setup
     @email_address = create_email_address
     @sent_email = create_email(:sender =&gt; @email_address, :to =&gt; create_email_address(:spec =&gt; 'jane.smith@gmail.com'))
@@ -58,7 +58,7 @@ class EmailAddressWithUnsentEmails &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressWithSentEmails &lt; Test::Unit::TestCase
+class EmailAddressWithSentEmails &lt; ActiveSupport::TestCase
   def setup
     @email_address = create_email_address
     @to = create_email_address(:spec =&gt; 'jane.smith@gmail.com')
@@ -80,7 +80,7 @@ class EmailAddressWithSentEmails &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressWithReceivedEmails &lt; Test::Unit::TestCase
+class EmailAddressWithReceivedEmails &lt; ActiveSupport::TestCase
   def setup
     @sender = create_email_address
     @email_address = create_email_address(:spec =&gt; 'jane.smith@gmail.com')
@@ -99,7 +99,7 @@ class EmailAddressWithReceivedEmails &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressWithHiddenEmailsTest &lt; Test::Unit::TestCase
+class EmailAddressWithHiddenEmailsTest &lt; ActiveSupport::TestCase
   def setup
     @email_address = create_email_address
     @friend = create_email_address(:spec =&gt; 'jane.smith@gmail.com')</diff>
      <filename>test/functional/has_emails_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,21 +1,17 @@
 require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
 
-class ActionMailerTest &lt; Test::Unit::TestCase
-  class TestMailer &lt; ActionMailer::Base
-    def signed_up(recipient)
-      subject    'Thanks for signing up'
-      from       'MyWebApp &lt;welcome@mywebapp.com&gt;'
-      recipients recipient
-      cc         'Nobody &lt;nobody@mywebapp.com&gt;'
-      bcc        'root@mywebapp.com'
-      body       'Congratulations!'
-    end
+class TestMailer &lt; ActionMailer::Base
+  def signed_up(recipient)
+    subject    'Thanks for signing up'
+    from       'MyWebApp &lt;welcome@mywebapp.com&gt;'
+    recipients recipient
+    cc         'Nobody &lt;nobody@mywebapp.com&gt;'
+    bcc        'root@mywebapp.com'
+    body       'Congratulations!'
   end
-  
-  def setup
-    ActionMailer::Base.deliveries = []
-  end
-  
+end
+
+class TestMailerTest &lt; ActionMailer::TestCase
   def test_should_use_camelized_application_name_for_default_subject_prefix
     assert_equal '[AppRoot] ', ActionMailer::Base.default_subject_prefix
   end</diff>
      <filename>test/unit/action_mailer_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
 
-class EmailAddressByDefaultTest &lt; Test::Unit::TestCase
+class EmailAddressByDefaultTest &lt; ActiveSupport::TestCase
   def setup
     @email_address = EmailAddress.new
   end
@@ -14,7 +14,7 @@ class EmailAddressByDefaultTest &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressTest &lt; Test::Unit::TestCase
+class EmailAddressTest &lt; ActiveSupport::TestCase
   def test_should_be_valid_with_a_set_of_valid_attributes
     email_address = new_email_address
     assert email_address.valid?
@@ -79,7 +79,7 @@ class EmailAddressTest &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressFromAddressTest &lt; Test::Unit::TestCase
+class EmailAddressFromAddressTest &lt; ActiveSupport::TestCase
   def setup
     @email_address = EmailAddress.new(:address =&gt; 'John Smith &lt;john.smith@gmail.com&gt;')
   end
@@ -97,7 +97,7 @@ class EmailAddressFromAddressTest &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressFromAddressWithoutNameTest &lt; Test::Unit::TestCase
+class EmailAddressFromAddressWithoutNameTest &lt; ActiveSupport::TestCase
   def setup
     @email_address = EmailAddress.new(:address =&gt; 'john.smith@gmail.com')
   end
@@ -115,7 +115,7 @@ class EmailAddressFromAddressWithoutNameTest &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressAfterBeingCreatedTest &lt; Test::Unit::TestCase
+class EmailAddressAfterBeingCreatedTest &lt; ActiveSupport::TestCase
   def setup
     @email_address = create_email_address(:name =&gt; 'John Smith', :spec =&gt; 'john.smith@gmail.com')
   end
@@ -133,7 +133,7 @@ class EmailAddressAfterBeingCreatedTest &lt; Test::Unit::TestCase
   end
 end
 
-class EmailAddressAsAClassTest &lt; Test::Unit::TestCase
+class EmailAddressAsAClassTest &lt; ActiveSupport::TestCase
   def test_should_be_able_to_split_address_containing_name
     name, spec = EmailAddress.split_address('John Smith &lt;john.smith@gmail.com&gt;')
     assert_equal 'John Smith', name</diff>
      <filename>test/unit/email_address_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
 
-class EmailAfterBeingDeliveredTest &lt; Test::Unit::TestCase
+class EmailAfterBeingDeliveredTest &lt; ActiveSupport::TestCase
   def setup
     ActionMailer::Base.deliveries = []
     </diff>
      <filename>test/unit/email_test.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>test/app_root/app/models/empty</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>63c425b9bba7bd35c20c96b5e72004f38b74522e</id>
    </parent>
  </parents>
  <author>
    <name>Aaron Pfeifer</name>
    <email>aaron.pfeifer@gmail.com</email>
  </author>
  <url>http://github.com/pluginaweek/has_emails/commit/5b45779a09cab6e8488e045ea0e9fa5289da61a4</url>
  <id>5b45779a09cab6e8488e045ea0e9fa5289da61a4</id>
  <committed-date>2009-04-19T12:53:01-07:00</committed-date>
  <authored-date>2009-04-19T12:53:01-07:00</authored-date>
  <message>Add compatibility with has_messages 0.4.0 / Rails 2.3</message>
  <tree>51b9ef3cc5f5cf510e1e1e5c029ae6088eef7995</tree>
  <committer>
    <name>Aaron Pfeifer</name>
    <email>aaron.pfeifer@gmail.com</email>
  </committer>
</commit>
