diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-05-15 14:56:04 +0200 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-05-15 14:56:04 +0200 |
commit | ba07c9f7f599cecac2c0840484f8bfc62d9e716b (patch) | |
tree | 12969a60a50e894360375a2a7c424781bf74933d /config | |
parent | b77e1ae6f78461a1721150538158480d99bd899b (diff) | |
download | gitlab-ce-ba07c9f7f599cecac2c0840484f8bfc62d9e716b.tar.gz |
Improve fix.attr_encryped_no_db_connection
Diffstat (limited to 'config')
-rw-r--r-- | config/initializers/attr_encrypted_no_db_connection.rb | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/config/initializers/attr_encrypted_no_db_connection.rb b/config/initializers/attr_encrypted_no_db_connection.rb index 72e257a013e..e270028f45d 100644 --- a/config/initializers/attr_encrypted_no_db_connection.rb +++ b/config/initializers/attr_encrypted_no_db_connection.rb @@ -1,25 +1,24 @@ 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}="]} + def attribute_instance_methods_as_symbols_with_no_db_connection + if connection_established? + # Call version from AttrEncrypted::Adapters::ActiveRecord + attribute_instance_methods_as_symbols_without_no_db_connection else - super + # Call version from AttrEncrypted (`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 + + private + 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? - } + # Use with_connection so the connection doesn't stay pinned to the thread. + ActiveRecord::Base.connection_pool.with_connection { |con| con.active? } rescue Exception false end |