Skip to content

Ecto type#23

Draft
VitorTrin wants to merge 6 commits intomasterfrom
ecto-type
Draft

Ecto type#23
VitorTrin wants to merge 6 commits intomasterfrom
ecto-type

Conversation

@VitorTrin
Copy link
Collaborator

Planejo um tipo para cpf, um para cnpj e um que aceita os 2

A idéia é salvar como string sem pontuação e devolver do banco como struct, de novo sem pontuação

Aceito sugestões de como testar isso.

@VitorTrin
Copy link
Collaborator Author

Ecto mudou como definir tipos customizados quando foi para 3.0. Vai ser preciso quebrar a compatibilidade com elixir 1.4 ou manter duas major versions ao mesmo tempo. Eu voto em quebrar a compatibilidade.

@VitorTrin VitorTrin force-pushed the ecto-type branch 3 times, most recently from 147844e to 19f08af Compare October 7, 2019 14:42
Copy link
Owner

@williamgueiros williamgueiros left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sim pode quebrar tbm não vejo problemas, faz muitos anos que saiu o 1.4, acho que nem tem mais atualizações de segurança.

{:credo, "~> 1.1", only: :dev, runtime: false},
{:dialyxir, "~> 1.0.0-rc.6", only: :dev, runtime: false}
{:dialyxir, "~> 1.0.0-rc.6", only: :dev, runtime: false},
{:ecto, "~> 3.2", optional: true}
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so aqui esta algo, que não curto muito.
colocar o ecto como dependencia.. pois devem existir pessoas que a usam a lib mas nem tem base de dados.
cheguei ate a pensar em dividir o projeto em 2 só para poder fazer isso, mas já existia muita gente usando fiquei amarrado.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Botando como opcional não força a ter a lib. Significa que se tiver legal, se não tiver não tem problema, e quando buildar a lib sozinha vai considerar que tem. Coloquei até um Code.ensure_loaded?(Ecto) pra garantir mais ainda.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

melhor impossivel

@aleDsz
Copy link

aleDsz commented Nov 12, 2020

Como ficou esse PR? 🤔

@VitorTrin
Copy link
Collaborator Author

@aleDsz desculpa a demora em responder, dei uma desanimada devido a quão complexo seria criar um setup de testes que realmente inserisse esse tipo em uma tabela, seria mais complexo que o resto da lib.

@aleDsz
Copy link

aleDsz commented Nov 24, 2020

@aleDsz desculpa a demora em responder, dei uma desanimada devido a quão complexo seria criar um setup de testes que realmente inserisse esse tipo em uma tabela, seria mais complexo que o resto da lib.

Neste caso eu posso tentar ajudar então, ai qualquer dúvida eu tiro contigo. Pode ser?

@VitorTrin
Copy link
Collaborator Author

Claro! O setup de testes que eu pensei foi o seguinte: Criar uma tabela com esse tipo e testar a inserção e recuperação de uma entrada. Para isso seria preciso criar e configurar um banco no setup de testes.

outra alternativa é confiar que se as funçãos de tipo custom estão bem implementadas e testadas dá pra confiar que o ecto está fazendo o trabalho dele. Nesse caso é só mergear. O que acha?

@williamgueiros
Copy link
Owner

williamgueiros commented Nov 25, 2020

Nunca fiz, mas sei que da para usar o
https://docs.travis-ci.com/user/database-setup/
para subir uma base só para testes.

@aleDsz
Copy link

aleDsz commented Nov 25, 2020

O Ecto tem um setup de "banco de dados" que na real não sobe banco nenhum, ele só usa a interface do Ecto para criar um banco fictício.

Posso utilizar isso para garantir que o read, update e create serão realizados sem problemas.

O Ecto Type eu cheguei a criar em um projeto privado utilizando as validações dessa lib, então não vejo problemas para fazer isso ser "oficial" hahaha

@aleDsz
Copy link

aleDsz commented Nov 28, 2020

Pessoal, fiz alguns testes mas não havia garantias na hora de dar Repo.get/2 no banco fictício do Ecto, então aproveitei para configurar o uso de Postgres nos testes, além de gerar migrations.

Also, criei o PR #27 que complementa esse aqui, ele ainda está em draft para irmos discutindo o que podemos ir mudando e deixar do jeito que funcione 100%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants