Don't require DB conncetion in AttrEncrypted.

This commit is contained in:
Douwe Maan 2015-05-15 14:34:22 +02:00
parent 25b0968846
commit b77e1ae6f7
1 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1,29 @@
module AttrEncrypted
module Adapters
module ActiveRecord
protected
def attribute_instance_methods_as_symbols
# We add accessor methods of the db columns to the list of instance
# methods returned to let ActiveRecord define the accessor methods
# for the db columns
if connection_established? && table_exists?
columns_hash.keys.inject(super) {|instance_methods, column_name| instance_methods.concat [column_name.to_sym, :"#{column_name}="]}
else
super
end
end
def connection_established?
begin
# use with_connection so the connection doesn't stay pinned to the thread.
ActiveRecord::Base.connection_pool.with_connection {
ActiveRecord::Base.connection.active?
}
rescue Exception
false
end
end
end
end
end