Sha256: ce6056a717c8502ae1c1b39f221e77063cb752988517a51b7e57eface5ed5dad

Contents?: true

Size: 1.83 KB

Versions: 47

Compression:

Stored size: 1.83 KB

Contents

# -*- encoding : utf-8 -*-
# Representa um numero de CPF. Objetos da classe Cpf recebem strings representando
# numeros de cpf e verificam a validade destes numeros usando dois criterios:
# 1. O formato da string, que deve seguir o padrao xxx.xxx.xxx-xx, onde 'x' pode ser qualquer digito de 0 a 9 e os tracos (-) e pontos (.) *sao opcionais*.
# 2. O conteudo numerico desta string, que eh validado atraves do calculo do 'modulo 11' dos digitos que compoe a string.
#
# Caso o conteudo da string obedeca ao formato especificado acima, o mesmo sera formatado para obedecer ao padrao xxx.xxx.xxx-xx
#
# Eh importante observar que caso voce associe um valor de cpf invalido ao seu model, o mesmo passara automaticamente a ser invalido, o que impede que valores de cpf incorretos sejam salvos no banco de dados.
#
# Como usar a classe Cpf no seu ActiveRecord:
#
# Suponha que temos um model Pessoa, com um atributo 'cpf'
# que voce quer usar como um numero de documento para cpf. Basta usar o
# metodo <tt>usar_como_cpf</tt>, assim:
#
#   class Pessoa < ActiveRecord::Base
#     usar_como_cpf :cpf
#   end
#
# O atributo que sera usado como cpf pode ter qualquer nome e nao apenas 'cpf'
#
# Agora voce pode usar o atributo para cpf da seguinte forma:
#
#   p = Pessoa.new
#   p.cpf = "11144477735"
#   puts p.cpf # ==> 111.444.777-35
#   p.cpf.valido? # ==> true
#   p.cpf_valido? # ==> true
#
#   p = Pessoa.new(:cpf => "111.444.777-35")
#   puts p.cpf # ==> 111.444.777-35
#
#   p = Pessoa.new
#   p.cpf = Cpf.new("111444777-35")
#   puts p.cpf # ==> 111.444.777-35
#
#   p = Pessoa.new
#   p.cpf = "12345" # ==> um cpf invalido
#   puts p.valid? # ==> false
#   p.save # ==> false
#   p.errors.on(:cpf) # ==> 'não é válido' # de acordo com o I18n
#
#   c = Cpf.new("11144477735")
#   p.cpf = "111.444.777-35"
#   c == p.cpf # ==> true
#
class Cpf
  include CpfCnpj
end


Version data entries

47 entries across 47 versions & 2 rubygems

Version Path
brcpfcnpj-3.3.0 lib/brcpfcnpj/cpf.rb
brcpfcnpj-3.2.0 lib/brcpfcnpj/cpf.rb
flexa_lib-0.5.2 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.5.1 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.5.0 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.9 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.8 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.7 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.6 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.5 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.4 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.3 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.2 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.1 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.3.0 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.2.9 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.2.8 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.2.7 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.2.6 lib/flexa_lib/brcpfcnpj/cpf.rb
flexa_lib-0.2.5 lib/flexa_lib/brcpfcnpj/cpf.rb