brdocs v0.2.0 BrDocs View Source
Generation, validation and formatting for Brazilian docs.
Currently supported docs:
CPF
it's a Brazilian identification number for individuals (like SSN, in USA).CNPJ
it's a Brazilian identification number for companies.
Link to this section Summary
Functions
Formats the BrDocs.BrDoc
value. Returns a formatted BrDocs.BrDoc
Formats the value. Returns a formatted BrDocs.BrDoc
Used mostly for testing, yet you can generate a valid doc. Returns a BrDocs.BrDoc
Validates BrDocs.BrDoc
. Returns a boolean
Validates the value. Returns a boolean
Link to this section Functions
format(brdoc)
View Source
format(BrDocs.BrDoc.t()) :: BrDocs.BrDoc.t()
format(BrDocs.BrDoc.t()) :: BrDocs.BrDoc.t()
Formats the BrDocs.BrDoc
value. Returns a formatted BrDocs.BrDoc
.
Examples
iex> BrDocs.format(%BrDocs.BrDoc{kind: :cpf, value: "12345678909"})
%BrDocs.BrDoc{kind: :cpf, value: "123.456.789-09"}
iex> BrDocs.format(%BrDocs.BrDoc{kind: :cnpj, value: "11444777000161"})
%BrDocs.BrDoc{kind: :cnpj, value: "11.444.777/0001-61"}
format(value, kind)
View Source
format(String.t(), atom()) :: BrDocs.BrDoc.t()
format(String.t(), atom()) :: BrDocs.BrDoc.t()
Formats the value. Returns a formatted BrDocs.BrDoc
.
The atom argument must be one of :cpf
, :cnpj
.
Examples
iex> BrDocs.format("12345678909", :cpf)
%BrDocs.BrDoc{kind: :cpf, value: "123.456.789-09"}
iex> BrDocs.format("11444777000161", :cnpj)
%BrDocs.BrDoc{kind: :cnpj, value: "11.444.777/0001-61"}
generate(kind, opts \\ [formatted: false])
View Source
generate(atom(), keyword()) :: BrDocs.BrDoc.t()
generate(atom(), keyword()) :: BrDocs.BrDoc.t()
Used mostly for testing, yet you can generate a valid doc. Returns a BrDocs.BrDoc
.
The kind must be one of :cpf
, :cnpj
.
Options
formatted
- a boolean to format the doc after generation. Defaults tofalse
.
Examples
iex> BrDocs.generate(:cpf)
%BrDocs.BrDoc{kind: :cpf, value: "12345678909"}
iex> BrDocs.generate(:cpf, formatted: true)
%BrDocs.BrDoc{kind: :cpf, value: "123.456.789-09"}
iex> BrDocs.generate(:cnpj)
%BrDocs.BrDoc{kind: :cnpj, value: "11444777000161"}
iex> BrDocs.generate(:cnpj, formatted: true)
%BrDocs.BrDoc{kind: :cnpj, value: "11.444.777/0001-61"}
validate(brdoc)
View Source
validate(BrDocs.BrDoc.t()) :: BrDocs.BrDoc.t()
validate(BrDocs.BrDoc.t()) :: BrDocs.BrDoc.t()
Validates BrDocs.BrDoc
. Returns a boolean.
Examples
iex> BrDocs.validate(%BrDocs.BrDoc{kind: :cpf, value: "12345678909"})
true
iex> BrDocs.validate(%BrDocs.BrDoc{kind: :cpf, value: "12345678900"})
false
iex> BrDocs.validate(%BrDocs.BrDoc{kind: :cpf, value: "123.456.789-09"})
true
iex> BrDocs.validate(%BrDocs.BrDoc{kind: :cpf, value: "123.456.789-00"})
false
iex> BrDocs.validate(%BrDocs.BrDoc{kind: :cnpj, value: "11444777000161"})
true
iex> BrDocs.validate(%BrDocs.BrDoc{kind: :cnpj, value: "11444777000160"})
false
iex> BrDocs.validate(%BrDocs.BrDoc{kind: :cnpj, value: "11.444.777/0001-61"})
true
iex> BrDocs.validate(%BrDocs.BrDoc{kind: :cnpj, value: "11.444.777/0001-60"})
false
validate(value, kind)
View Source
validate(String.t(), atom()) :: BrDocs.BrDoc.t()
validate(String.t(), atom()) :: BrDocs.BrDoc.t()
Validates the value. Returns a boolean.
The atom argument must be one of :cpf
, :cnpj
.
Examples
iex> BrDocs.validate("12345678909", :cpf)
true
iex> BrDocs.validate("12345678900", :cpf)
false
iex> BrDocs.validate("123.456.789-09", :cpf)
true
iex> BrDocs.validate("123.456.789-00", :cpf)
false
iex> BrDocs.validate("11444777000161", :cnpj)
true
iex> BrDocs.validate("11444777000160", :cnpj)
false
iex> BrDocs.validate("11.444.777/0001-61", :cnpj)
true
iex> BrDocs.validate("11.444.777/0001-60", :cnpj)
false