Class: Field::Email

Inherits:
Base
  • Object
show all
Defined in:
lib/field/email.rb

Instance Attribute Summary

Attributes inherited from Base

#fieldset, #form, #name, #value

Instance Method Summary collapse

Methods inherited from Base

#add_attributes, #attribute, #form?, #initialize, #output

Constructor Details

This class inherits a constructor from Field::Base

Instance Method Details

#add_validations(klass, options) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/field/email.rb', line 5

def add_validations(klass, options)
  klass.validates name, length: { maximum: 155 }
  klass.validates name, email_format: { 
    message: I18n.t('activemodel.errors.messages.email'),
    allow_nil: true,
    allow_blank: true
  }

  if options[:uniqueness]
    unless options[:uniqueness].is_a?(Hash) && options[:uniqueness][:model]
      raise Field::Error, "Must specify a model to validate uniqueness"
    end

    required = { 
      case_sensitive: false, 
      attribute:      name, 
      allow_nil:      true, 
      allow_blank:    true
    }

    klass.validates name, uniqueness: options[:uniqueness].merge(required)
    options.reject! { |k| k == :uniqueness }
  end

  super
end