aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/core.rb
diff options
context:
space:
mode:
authorSam Saffron <sam.saffron@gmail.com>2013-03-27 04:28:28 -0700
committerSam <sam.saffron@gmail.com>2013-03-27 04:28:28 -0700
commitb37399ab987c3f54e94178da7d41bfc5f48308de (patch)
treea890cc6752e42d370a342d841ea1e3058b84613a /activerecord/lib/active_record/core.rb
parentc56e6204dbc622f40745e6e5f22172b435e3b962 (diff)
downloadrails-b37399ab987c3f54e94178da7d41bfc5f48308de.tar.gz
rails-b37399ab987c3f54e94178da7d41bfc5f48308de.tar.bz2
rails-b37399ab987c3f54e94178da7d41bfc5f48308de.zip
Make connection_handler overridable per thread
Diffstat (limited to 'activerecord/lib/active_record/core.rb')
-rw-r--r--activerecord/lib/active_record/core.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb
index 013f9b92b9..1ed05c1bd4 100644
--- a/activerecord/lib/active_record/core.rb
+++ b/activerecord/lib/active_record/core.rb
@@ -77,8 +77,17 @@ module ActiveRecord
mattr_accessor :disable_implicit_join_references, instance_writer: false
self.disable_implicit_join_references = false
- class_attribute :connection_handler, instance_writer: false
- self.connection_handler = ConnectionAdapters::ConnectionHandler.new
+ class_attribute :default_connection_handler, instance_writer: false
+
+ def self.connection_handler
+ Thread.current[:active_record_connection_handler] || self.default_connection_handler
+ end
+
+ def self.connection_handler=(handler)
+ Thread.current[:active_record_connection_handler] = handler
+ end
+
+ self.default_connection_handler = ConnectionAdapters::ConnectionHandler.new
end
module ClassMethods