Module: Devision::Models::Authenticatable::ClassMethods

Defined in:
lib/devision/models/authenticatable.rb

Instance Method Summary collapse

Instance Method Details

#find_first_by_auth_conditions(tainted_conditions, options = {}) ⇒ Object



14
15
16
# File 'lib/devision/models/authenticatable.rb', line 14

def find_first_by_auth_conditions(tainted_conditions, options = {})
  to_adapter.find_first(tainted_conditions.merge(options))
end

#find_or_initialize_with_error_by(attribute, value, error = :invalid) ⇒ Object



18
19
20
# File 'lib/devision/models/authenticatable.rb', line 18

def find_or_initialize_with_error_by(attribute, value, error=:invalid)
  find_or_initialize_with_errors([attribute], { attribute => value }, error)
end

#find_or_initialize_with_errors(required_attributes, attributes, error = :invalid) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/devision/models/authenticatable.rb', line 22

def find_or_initialize_with_errors(required_attributes, attributes, error=:invalid)
  attributes = attributes.slice(*required_attributes)
  attributes.delete_if { |key, value| value.blank? }

  if attributes.size == required_attributes.size
    record = find_first_by_auth_conditions(attributes)
  end

  unless record
    record = new
    required_attributes.each do |key|
      value = attributes[key]
      record.public_send("#{key}=", value)
      record.errors.add(key, value.present? ? error : :blank)
    end
  end

  record
end