Permalink
Browse files

Document ActiveRecord::ConnectionAdapters::ConnectionHandler.

  • Loading branch information...
1 parent 1b123ba commit aa87c2019a638c793c5c14a31cc8b5e4a63933c4 @FooBarWidget FooBarWidget committed Sep 17, 2008
Showing with 23 additions and 0 deletions.
  1. +23 −0 activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
@@ -249,6 +249,29 @@ def checkout_and_verify(c)
end
end
+ # ConnectionHandler is a collection of ConnectionPool objects. It is used
+ # for keeping separate connection pools for ActiveRecord models that connect
+ # to different databases.
+ #
+ # For example, suppose that you have 5 models, with the following hierarchy:
+ #
+ # |
+ # +-- Book
+ # | |
+ # | +-- ScaryBook
+ # | +-- GoodBook
+ # +-- Author
+ # +-- BankAccount
+ #
+ # Suppose that Book is to connect to a separate database (i.e. one other
+ # than the default database). Then Book, ScaryBook and GoodBook will all use
+ # the same connection pool. Likewise, Author and BankAccount will use the
+ # same connection pool. However, the connection pool used by Author/BankAccount
+ # is not the same as the one used by Book/ScaryBook/GoodBook.
+ #
+ # Normally there is only a single ConnectionHandler instance, accessible via
+ # ActiveRecord::Base.connection_handler. ActiveRecord models use this to
+ # determine that connection pool that they should use.
class ConnectionHandler
def initialize(pools = {})
@connection_pools = pools

0 comments on commit aa87c20

Please sign in to comment.