Conversation
|
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. |
147844e to
19f08af
Compare
williamgueiros
left a comment
There was a problem hiding this comment.
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} |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
It's redundant to module name
|
Como ficou esse PR? 🤔 |
|
@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? |
|
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? |
|
Nunca fiz, mas sei que da para usar o |
|
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 |
|
Pessoal, fiz alguns testes mas não havia garantias na hora de dar Also, criei o PR #27 que complementa esse aqui, ele ainda está em |
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.