summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/temporary_user.rb26
1 files 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.