Module: ActiveRecord::Validations::ClassMethods

Defined in:
lib/validates_as_cep.rb,
lib/validates_as_cpf.rb,
lib/validates_as_cnpj.rb,
lib/validates_as_email.rb,
lib/validates_as_uf_br.rb,
lib/validates_as_website.rb,
lib/validates_as_phonenumber_br.rb

Instance Method Summary collapse

Instance Method Details

#validates_as_cep(*attr_names) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/validates_as_cep.rb', line 4

def validates_as_cep(*attr_names)
  configuration = {
    :message => I18n.translate('activerecord.errors.messages.invalid', :default => 'invalid' ),
    :with => /\A(\d{5})([-]{0,1})(\d{3})\Z/,
    :allow_nil => true }
  configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)

  validates_format_of attr_names, configuration
end

#validates_as_cnpj(*attr_names) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
# File 'lib/validates_as_cnpj.rb', line 57

def validates_as_cnpj(*attr_names)
  configuration = {
    :message => I18n.translate('activerecord.errors.messages.invalid', :default => 'invalid' ),
    :allow_nil => true }
  configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)

  validates_each attr_names, configuration do |record, attribute, value|
    record.errors.add(attribute, configuration[:message]) if CNPJ.invalid?(value)
  end
  
end

#validates_as_cpf(*attr_names) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
# File 'lib/validates_as_cpf.rb', line 55

def validates_as_cpf(*attr_names)
  configuration = {
    :message => I18n.translate('activerecord.errors.messages.invalid', :default => 'invalid' ),
    :allow_nil => true }
  configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)

  validates_each attr_names, configuration do |record, attribute, value|
    record.errors.add(attribute, configuration[:message]) if CPF.invalid?(value)
  end
  
end

#validates_as_email(*attr_names) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/validates_as_email.rb', line 47

def validates_as_email(*attr_names)
  configuration = {
    :message => I18n.translate('activerecord.errors.messages.invalid', :default => 'invalid' ),
    :with => RFC822::EmailAddress,
    :allow_nil => true }
  configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)

  validates_format_of attr_names, configuration
end

#validates_as_phonenumber_br(*attr_names) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/validates_as_phonenumber_br.rb', line 4

def validates_as_phonenumber_br(*attr_names)
  configuration = {
    :message => I18n.translate('activerecord.errors.messages.invalid', :default => 'invalid' ),
    :with => /\A([1-9]{2})([- ]{0,1})(\d{3}|\d{4})([- ]{0,1})(\d{4})\Z/,
    :allow_nil => true }
  configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)

  validates_format_of attr_names, configuration
end

#validates_as_uf_br(*attr_names) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/validates_as_uf_br.rb', line 17

def validates_as_uf_br(*attr_names)
  configuration = {
    :message => I18n.translate('activerecord.errors.messages.invalid', :default => 'invalid' ),
    :allow_nil => true,
    :allow_down => true,
    :allow_up => true }
  configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)

  validates_each attr_names, configuration do |record, attribute, value|
    record.errors.add(attribute, configuration[:message]) if UF_BR.invalid?(value, configuration[:allow_up], configuration[:allow_down])
  end
  
end

#validates_as_website(*attr_names) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/validates_as_website.rb', line 4

def validates_as_website(*attr_names)
  configuration = {
    :message => I18n.translate('activerecord.errors.messages.invalid', :default => 'invalid' ),
    :with => /\A(http|https)[:]\/{2}[^\/.]+([.][^\/.]+)+.*\Z/i,
    :allow_nil => true }
  configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)

  validates_format_of attr_names, configuration
end