Sha256: daf7750c5d933ee27c8ae84ce7c1c7eeaf7282708525dd4fbab7daa21adb6c78

Contents?: true

Size: 1.81 KB

Versions: 47

Compression:

Stored size: 1.81 KB

Contents

# -*- encoding : utf-8 -*-
# Representa um numero de CNPJ. Objetos da classe Cnpj recebem strings representando numeros de cnpj e verificam a validade destes numeros usando dois criterios:
# 1. O formato da string, que deve seguir o padrao xx.xxx.xxx/xxxx-xx, onde 'x' pode ser qualquer digito de 0 a 9 e os tracos (-), barra (/) 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 xx.xxx.xxx/xxxx-xx
#
# Eh importante observar que caso voce associe um valor de cnpj 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 Cnpj no seu ActiveRecord:
#
# Suponha que temos um model Empresa, com um atributo 'cnpj'
# que voce quer usar como um numero de documento para cnpj. Basta usar o
# metodo <tt>usar_como_cnpj</tt>, assim:
#
#   class Empresa < ActiveRecord::Base
#     usar_como_cnpj :cnpj
#   end
#
# Agora voce pode usar o atributo para cnpj da seguinte forma:
#
#  e = Empresa.new
#  e.cnpj = "69103604000160"
#  puts e.cnpj # ==> 69.103.604/0001-60
#  e.cnpj.valido? # ==> true
#  e.cnpj_valido? # ==> true
#
#  e = Empresa.new(:cnpj => "69.103.604/0001-60")
#  puts e.cnpj # ==> 69.103.604/0001-60
#
#  e = Empresa.new
#  e.cnpj = Cnpj.new("691036040001-60")
#  puts e.cnpj # ==> 69.103.604/0001-60
#
#  e = Empresa.new
#  e.cnpj = "12343" # ==> um cnpj invalido
#  puts e.valid? # ==> false
#  e.save # ==> false
#  e.errors.on(:cnpj) # ==> 'não é válido' # de acordo com a I18n
#
#  c = Cnpj.new("69103604000160")
#  e.cnpj = "69.103.604/0001-60"
#  c == e.cnpj # ==> true
class Cnpj
  include CpfCnpj
end

Version data entries

47 entries across 47 versions & 2 rubygems

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