Sha256: 206ab1cd7772b0ba49e951f71456815e63cfdefdeb6e8fa3320adf682a893081

Contents?: true

Size: 567 Bytes

Versions: 9

Compression:

Stored size: 567 Bytes

Contents

require_relative "document"

module BrDocuments
  module CnpjCpf
    class Cnpj
      include Document

      def initialize(number)
        @number = number
      end

      def valid?
        regex = /^(\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2})$|^(\d{14})$/
        weight13 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
        weight14 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]

        valid_number?(@number, regex, weight13, weight14)
      end

      def formatted
        @number.sub(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/, "\\1.\\2.\\3/\\4-\\5")
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
br_documents-0.0.12 lib/br_documents/cnpj_cpf/cnpj.rb
br_documents-0.0.11 lib/br_documents/cnpj_cpf/cnpj.rb
br_documents-0.0.10 lib/br_documents/cnpj_cpf/cnpj.rb
br_documents-0.0.9 lib/br_documents/cnpj_cpf/cnpj.rb
br_documents-0.0.8 lib/br_documents/cnpj_cpf/cnpj.rb
br_documents-0.0.7 lib/br_documents/cnpj_cpf/cnpj.rb
br_documents-0.0.6 lib/br_documents/cnpj_cpf/cnpj.rb
br_documents-0.0.5 lib/br_documents/cnpj_cpf/cnpj.rb
br_documents-0.0.4 lib/br_documents/cnpj_cpf/cnpj.rb