Sha256: 4f457de2d3ac5daf342a089c338c5b57839980aaa78a19067e20336a32a258b6

Contents?: true

Size: 533 Bytes

Versions: 9

Compression:

Stored size: 533 Bytes

Contents

require_relative "document"

module BrDocuments
  module CnpjCpf
    class Cpf
      include Document

      def initialize(number)
        @number = number
      end

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

        valid_number?(@number, regex, weight10, weight11)
      end

      def formatted
        @number.sub(/(\d{3})(\d{3})(\d{3})(\d{2})/, "\\1.\\2.\\3-\\4")
      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/cpf.rb
br_documents-0.0.11 lib/br_documents/cnpj_cpf/cpf.rb
br_documents-0.0.10 lib/br_documents/cnpj_cpf/cpf.rb
br_documents-0.0.9 lib/br_documents/cnpj_cpf/cpf.rb
br_documents-0.0.8 lib/br_documents/cnpj_cpf/cpf.rb
br_documents-0.0.7 lib/br_documents/cnpj_cpf/cpf.rb
br_documents-0.0.6 lib/br_documents/cnpj_cpf/cpf.rb
br_documents-0.0.5 lib/br_documents/cnpj_cpf/cpf.rb
br_documents-0.0.4 lib/br_documents/cnpj_cpf/cpf.rb