Module: Devise::Models::MultiEmailValidatable
- Defined in:
- lib/devise/multi_email/models/validatable.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VALIDATIONS =
All validations used by this module.
[:validates_presence_of, :validates_uniqueness_of, :validates_format_of, :validates_confirmation_of, :validates_length_of].freeze
Class Method Summary collapse
-
.assert_validations_api!(base) ⇒ Object
:nodoc:.
- .included(base) ⇒ Object
- .required_fields(klass) ⇒ Object
Class Method Details
.assert_validations_api!(base) ⇒ Object
:nodoc:
50 51 52 53 54 55 56 57 |
# File 'lib/devise/multi_email/models/validatable.rb', line 50 def self.assert_validations_api!(base) #:nodoc: unavailable_validations = VALIDATIONS.select { |v| !base.respond_to?(v) } unless unavailable_validations.empty? raise "Could not use :validatable module since #{base} does not respond " << "to the following methods: #{unavailable_validations.to_sentence}." end end |
.included(base) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/devise/multi_email/models/validatable.rb', line 32 def self.included(base) base.extend ClassMethods assert_validations_api!(base) base.class_eval do validates_presence_of :email, if: :email_required? validates_presence_of :password, if: :password_required? validates_confirmation_of :password, if: :password_required? validates_length_of :password, within: password_length, allow_blank: true after_validation :propagate_email_errors email_class.send :include, EmailValidatable end base.devise_modules << :validatable end |
.required_fields(klass) ⇒ Object
24 25 26 |
# File 'lib/devise/multi_email/models/validatable.rb', line 24 def self.required_fields(klass) [] end |