From f0d2f44ea3babdafc793856082d8c532b05187ae Mon Sep 17 00:00:00 2001 From: Azul Date: Fri, 12 Aug 2016 11:59:05 +0200 Subject: [db] remove DatabaseMethod import from TemporaryUser It was causing 404s on initializing the database with db:migrate. DatabaseMethods rewrite of #database does not call prepare_database and thus does not create the database when needed. DatabaseMethod is also quite a bit too much for a model that has two databases that can be memoized easily. There's no way to have a separate database instance per record. --- lib/temporary_user.rb | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/lib/temporary_user.rb b/lib/temporary_user.rb index 2afae15..e41add5 100644 --- a/lib/temporary_user.rb +++ b/lib/temporary_user.rb @@ -12,16 +12,12 @@ module TemporaryUser extend ActiveSupport::Concern - include CouchRest::Model::DatabaseMethod - USER_DB = 'users' TMP_USER_DB = 'tmp_users' TMP_LOGIN = 'tmp_user' # created and deleted frequently TEST_LOGIN = 'test_user' # created, rarely deleted included do - use_database_method :db_name - # since the original find_by_login is dynamically created with # instance_eval, it appears that we also need to use instance eval to # override it. @@ -45,15 +41,7 @@ module TemporaryUser # calls db_name(TMP_LOGIN), then creates a CouchRest::Database # from the name def tmp_database - choose_database(TMP_LOGIN) - end - - def db_name(login=nil) - if !login.nil? && login.include?(TMP_LOGIN) - TMP_USER_DB - else - USER_DB - end + @tmp_database ||= prepare_database TMP_USER_DB end # create the tmp db if it doesn't exist. @@ -71,12 +59,12 @@ module TemporaryUser end end - # - # this gets called each and every time a User object needs to - # access the database. - # - def db_name - self.class.db_name(self.login) + def database + if login.present? && login.include?(TMP_LOGIN) + self.class.tmp_database + else + self.class.database + end end # returns true if this User instance is stored in tmp db. -- cgit v1.2.3