From 4b686755b2dcd04beb63ac34cb4cbe69e83c899f Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Fri, 15 May 2015 14:39:38 +0000 Subject: [PATCH] Merge branch 'attr_encryped_no_db_connection' into 'master' Don't require DB connection in AttrEncrypted. See merge request !667 --- .../attr_encrypted_no_db_connection.rb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 config/initializers/attr_encrypted_no_db_connection.rb diff --git a/config/initializers/attr_encrypted_no_db_connection.rb b/config/initializers/attr_encrypted_no_db_connection.rb new file mode 100644 index 0000000000..c668864089 --- /dev/null +++ b/config/initializers/attr_encrypted_no_db_connection.rb @@ -0,0 +1,20 @@ +module AttrEncrypted + module Adapters + module ActiveRecord + def attribute_instance_methods_as_symbols_with_no_db_connection + # Use with_connection so the connection doesn't stay pinned to the thread. + connected = ::ActiveRecord::Base.connection_pool.with_connection(&:active?) rescue false + + if connected + # Call version from AttrEncrypted::Adapters::ActiveRecord + attribute_instance_methods_as_symbols_without_no_db_connection + else + # Call version from AttrEncrypted, i.e., `super` with regards to AttrEncrypted::Adapters::ActiveRecord + AttrEncrypted.instance_method(:attribute_instance_methods_as_symbols).bind(self).call + end + end + + alias_method_chain :attribute_instance_methods_as_symbols, :no_db_connection + end + end +end