<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>test/connection_proxy_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -8,7 +8,12 @@ to a master database, and the rest to the slave database.
 
 The ActiveReload::MasterDatabase model uses a 'master_database' setting that
 can either be defined for all of your environments, or for each environment as
-a nested declaration:
+a nested declaration.
+
+The ActiveReload::SlaveDatabase model uses a 'slave_database' setting that
+can only be defined per environment.
+
+Example declarations:
 
   # config/database.yml
   login: &amp;login
@@ -33,6 +38,15 @@ a nested declaration:
       host: master-db-server.local
       &lt;&lt;: *login
 
+  qa:
+    database: qa_master_database_name
+    host: qa-master
+    &lt;&lt;: *login
+    slave_database:
+      database: qa_slave_database_name
+      host: qa-slave
+      &lt;&lt;: *login
+
   development: # Does not use masochism
     database: development_database_name
     &lt;&lt;: *login
@@ -81,4 +95,4 @@ class RandomController &lt; ApplicationController
   around_filter ActiveReload::MasterFilter, :only =&gt; [:show, :edit, :update]
   
   ...
-end
\ No newline at end of file
+end</diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,15 @@
 module ActiveReload
   class MasterDatabase &lt; ActiveRecord::Base
     self.abstract_class = true
-    establish_connection configurations[Rails.env]['master_database'] || :master_database
+    establish_connection configurations[Rails.env]['master_database'] || configurations['master_database'] || Rails.env
+  end
+
+  class SlaveDatabase &lt; ActiveRecord::Base
+    self.abstract_class = true
+    def self.name
+      ActiveRecord::Base.name
+    end
+    establish_connection configurations[Rails.env]['slave_database'] || Rails.env
   end
 
   class ConnectionProxy
@@ -10,13 +18,21 @@ module ActiveReload
       @master  = master.connection
       @current = @slave
     end
-    
+
     attr_accessor :slave, :master
 
     def self.setup!
-      setup_for ActiveReload::MasterDatabase
+      if slave_defined?
+        setup_for ActiveReload::MasterDatabase, ActiveReload::SlaveDatabase
+      else
+        setup_for ActiveReload::MasterDatabase
+      end
+    end
+
+    def self.slave_defined?
+      ActiveRecord::Base.configurations[Rails.env]['slave_database']
     end
-    
+
     def self.setup_for(master, slave = nil)
       slave ||= ActiveRecord::Base
       slave.send :include, ActiveRecordConnectionMethods
@@ -33,22 +49,22 @@ module ActiveReload
 
     def set_to_master!
       return if @current == @master
-      
+
       logger.info &quot;Switching to Master&quot;
       @current = @master
     end
-    
+
     def set_to_slave!
       return if @current == @slave
-      
+
       logger.info &quot;Switching to Slave&quot;
       @current = @slave
     end
-    
-    delegate :insert, :update, :delete, :create_table, :rename_table, :drop_table, :add_column, :remove_column, 
+
+    delegate :insert, :update, :delete, :create_table, :rename_table, :drop_table, :add_column, :remove_column,
       :change_column, :change_column_default, :rename_column, :add_index, :remove_index, :initialize_schema_information,
       :dump_schema_information, :execute, :to =&gt; :master
-    
+
     def transaction(start_db_transaction = true, &amp;block)
       with_master { @current.transaction(start_db_transaction, &amp;block) }
     end
@@ -57,12 +73,12 @@ module ActiveReload
       @current.send(method, *args, &amp;block)
     end
   end
-  
+
   module ActiveRecordConnectionMethods
     def self.included(base)
       base.alias_method_chain :reload, :master
     end
-    
+
     def reload_with_master(*args, &amp;block)
       if connection.class.name == &quot;ActiveReload::ConnectionProxy&quot;
         connection.with_master { reload_without_master }
@@ -79,7 +95,7 @@ module ActiveReload
     def self.included(base)
       base.alias_method_chain :update, :masterdb
     end
-    
+
     # Send observed_method(object) if the method exists.
     def update_with_masterdb(observed_method, object) #:nodoc:
       if object.class.connection.respond_to?(:with_master)
@@ -91,4 +107,4 @@ module ActiveReload
       end
     end
   end
-end
\ No newline at end of file
+end</diff>
      <filename>lib/active_reload/connection_proxy.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>176aa0e93040088ae8c8a8bee7b8b4780b2c2e37</id>
    </parent>
  </parents>
  <author>
    <name>Scott Steadman</name>
    <email>ss@stdmn.com</email>
  </author>
  <url>http://github.com/technoweenie/masochism/commit/1bd18ef778bb54f7ef3796e0ebd9a21766ab4ab7</url>
  <id>1bd18ef778bb54f7ef3796e0ebd9a21766ab4ab7</id>
  <committed-date>2008-10-19T18:03:59-07:00</committed-date>
  <authored-date>2008-10-19T18:03:59-07:00</authored-date>
  <message>Added the ability to specify the slave database.

Calling or not-calling ConnectionProxy.setup! will work the same
if no master or slave connection specified for the current environment.

I also removed trailing spaces and added tests.</message>
  <tree>94f96f077a9919729a01f6bea5713ae9d601dfee</tree>
  <committer>
    <name>Scott Steadman</name>
    <email>ss@stdmn.com</email>
  </committer>
</commit>
