Pular para o conteúdo

Quatro bibliotecas de verdade

Os pacotes deste repositório, e a decisão de desenho que cada um demonstra.

packages/ tem quatro bibliotecas escritas em DataForge, publicadas no registro do site e somando 46 testes. Elas servem de referência — e de prova de que o gerenciador funciona ponta a ponta.

PacoteO quêA decisão que ele demonstra
validadorCPF, CNPJ, e-mail e esquema de formulárioa validação devolve o motivo, e não no
tabelasaída para terminalmedir a largura do que é impresso, e não do que é guardado
datasdatas em pt-BR, com feriadoso que a biblioteca não faz: fuso horário
cofreconfiguração em camadasa ordem das fontes é o recurso

O validador: o motivo, e não o booleano#

dataforge
action validar_cpf(texto):
    digitos := "".join([c cycle c in texto given c.isdigit()])
    given len(digitos) is 0:
        yield {"ok": no, "motivo": "vazio"}
    given len(digitos) is not 11:
        yield {"ok": no, "motivo": $"tem {len(digitos)} digitos, e nao 11"}
    given digitos is digitos[0] * 11:
        yield {"ok": no, "motivo": "todos os digitos iguais"}
    yield {"ok": yes, "motivo": ""}

assert validar_cpf("529.982.247-25")["ok"]
out validar_cpf("111.111.111-11")["motivo"]
out validar_cpf("123")["motivo"]

O cofre: a ordem é o recurso#

dataforge
// A ordem e sempre a mesma, e e ela que faz um segredo de producao
// vencer o padrao do arquivo sem ninguem editar nada:
//
//   padrao  <  arquivo  <  ambiente  <  argumento de linha

action resolver(padrao, arquivo, ambiente, argumento):
    valor := padrao
    cycle fonte in [arquivo, ambiente, argumento]:
        given fonte is not void:
            valor := fonte
    yield valor

assert resolver(5432, 5433, void, void) is 5433
assert resolver(5432, 5433, 6000, void) is 6000
assert resolver(5432, 5433, 6000, 7000) is 7000
bash
cd packages/validador
dataforge test .
dataforge pack
dataforge publish --registry=../../site/public/registry

Continue em Estrutura e Publicar.