Class: Validatable::Errors

Inherits:
Object
  • Object
show all
Defined in:
lib/devise/orm/mongo_mapper/mm-validations.rb

Overview

Monkey-patch Validatable::Errors to support generation of error message from a Symbol.

Constant Summary collapse

@@default_error_messages =
{}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.default_error_message(key, field, *values) ⇒ Object



14
15
16
17
# File 'lib/devise/orm/mongo_mapper/mm-validations.rb', line 14

def self.default_error_message(key, field, *values)
  field = field.to_s.humanize
  @@default_error_messages[key] % [field, *values].flatten
end

.default_error_messages=(default_error_messages) ⇒ Object

Holds a hash with all the default error messages that can be replaced by your own copy or localizations.



10
11
12
# File 'lib/devise/orm/mongo_mapper/mm-validations.rb', line 10

def self.default_error_messages=(default_error_messages)
  @@default_error_messages = default_error_messages
end

Instance Method Details

#add(field_name, message) ⇒ Object

If the message is a Symbol, allow default_error_message to generate the message, including translation.



29
30
31
32
33
34
35
36
# File 'lib/devise/orm/mongo_mapper/mm-validations.rb', line 29

def add(field_name, message)      
  if message.kind_of?(Symbol)
    message = self.class.default_error_message(message, field_name)
  end                    
  fld_name = field_name.to_sym
  errors[fld_name] = [] if errors[fld_name].nil?
  original_add(fld_name, message) unless errors[fld_name].include?(message)
end

#original_addObject

original add before monkey-patch def add(attribute, message) #:nodoc:

errors[attribute.to_sym] = [] if errors[attribute.to_sym].nil?
errors[attribute.to_sym] << message

end



25
# File 'lib/devise/orm/mongo_mapper/mm-validations.rb', line 25

alias_method :original_add, :add