1
0
Fork 0
mirror of https://github.com/heartcombo/devise.git synced 2022-11-09 12:18:31 -05:00

Fix compatibility with Mongoid and Datamapper, closes #206.

This commit is contained in:
José Valim 2010-04-15 21:39:56 +02:00
parent 1db86a0810
commit 9291ab55b8

View file

@ -1,17 +1,5 @@
module Devise
module Models
class << self
def hook(base)
base.class_eval do
class_attribute :devise_modules, :instance_writer => false
self.devise_modules ||= []
end
end
alias :included :hook
alias :extended :hook
end
# Creates configuration values for Devise and for the given module.
#
# Devise::Models.config(Devise::Authenticable, :stretches, 10)
@ -57,6 +45,7 @@ module Devise
# for a complete description on those values.
#
def devise(*modules)
define_devise_class_attributes!
include Devise::Models::Authenticatable
options = modules.extract_options!
@ -88,7 +77,7 @@ module Devise
end
# Find an initialize a record setting an error if it can't be found.
def find_or_initialize_with_error_by(attribute, value, error=:invalid)
def find_or_initialize_with_error_by(attribute, value, error=:invalid) #:nodoc:
if value.present?
conditions = { attribute => value }
record = find(:first, :conditions => conditions)
@ -96,18 +85,22 @@ module Devise
unless record
record = new
if value.present?
record.send(:"#{attribute}=", value)
else
error = :blank
end
record.errors.add(attribute, error)
end
record
end
def define_devise_class_attributes! #:nodoc:
return if respond_to?(:devise_modules)
class_attribute :devise_modules, :instance_writer => false
self.devise_modules = []
end
end
end