Size: a a a

2020 December 19

Е

Евгений in pro.elixir
Alexey Novoselov
наверно это же)
А каким тогда боком тут ограничение на количество таблиц?
источник

AN

Alexey Novoselov in pro.elixir
Евгений
Переслано от Lama Lover
Только вот количество :ets таблиц ограничено, поэтому терять их не хочется
вот тут хз что он имел ввиду, видимо прогнал чуток)
источник

Е

Евгений in pro.elixir
eternal как раз, видимо, нужна чтобы данные не терять при рестартах.
источник

AN

Alexey Novoselov in pro.elixir
да, так и есть
источник

B

Bogdan in pro.elixir
Какое можно получить наказание если не переписывать колонки которые добавлялись через Postgres клиент(TablePlus) в Ecto миграцию?
источник

B

Bogdan in pro.elixir
в целом без разницы как они добавлялись) просто через TablePlus как-то все быстрее происходит чем миграцию городить) когда что-то добавить убрать надо
источник

DS

Dmitry Shpagin in pro.elixir
Bogdan
Какое можно получить наказание если не переписывать колонки которые добавлялись через Postgres клиент(TablePlus) в Ecto миграцию?
Вроде по стандарту: бьют по пальцам до переломов
источник

B

Bogdan in pro.elixir
:)))
источник

SK

Suren Kirakosyan in pro.elixir
Привет всем. Кто может помочь с рефакторингом этого кода?

 @username_regex ~r/^[[:alnum:]]+(\.[[:alnum:]]+)?$/
 @mail_regex ~r/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/
 defp check_username_or_email_and_password_on_blink(username, email, password) do
   IO.inspect(username)
   IO.inspect(email)
   IO.inspect(password)

   cond do
     username == nil && email == nil && password == nil ->
       "Please type username, email and password"

     username == nil && email == nil && String.length(password) <= 2 ->
       "Please type username and email. Password is shorter"

     username == nil && email == nil && String.length(password) >= 11 ->
       "Please type username and email. Password is longer"

     username == nil && email == nil && password != nil ->
       "Please type username, email."

     username != nil && String.length(username) <= 2 && email == nil &&
         String.length(password) <= 2 ->
       "Username shorter. Password shorter"

     username != nil && String.length(username) >= 11 && email == nil &&
         String.length(password) <= 2 ->
       "Username longer. Password shorter"

     username != nil && String.length(username) >= 11 && email == nil &&
         String.length(password) >= 11 ->
       "Username longer. Password longer"

     username == nil && String.length(email) <= 2 && String.length(password) <= 2 ->
       "Email shorter. Password shorter"

     username == nil && String.length(email) >= 11 && String.length(password) <= 2 ->
       "Email longer. Password shorter"

     username == nil && String.length(email) >= 11 && String.length(password) >= 11 ->
       "Email longer. Password longer"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
         String.length(password) <= 2 ->
       "Wrong username format. Password shorter"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
         String.length(password) >= 11 ->
       "Wrong username format. Password longer"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       "Wrong username format"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
         String.length(password) <= 2 ->
       "Wrong email format. Password shorter"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
         String.length(password) >= 11 ->
       "Wrong email format. Password longer"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       "Wrong email format"

     password == nil ->
       "Please type password"

     String.length(password) <= 2 ->
       "Password shorter"

     String.length(password) >= 11 ->
       "Password longer"

     username != nil && Regex.match?(@username_regex, username) == true && email == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       %{username: username}

     username == nil && Regex.match?(@mail_regex, email) == true && String.length(password) >= 3 &&
         String.length(password) <= 10 ->
       %{email: email}

     true ->
       :error
   end
 end
источник

SK

Suren Kirakosyan in pro.elixir
И это ещё не завершённая версия, там ещё можно рассмотреть другие случаи.
Я пробовал написать это другим способом, но у меня не получается написать понятную ошибку для каждого случая с использованием, скажем, Ecto.Changeset. В итоге пришёл к выводу, что так будет лучше, но вот я уже столько условий поставил, что сам запутался.
источник

C

Combot in pro.elixir
Total messages: 173529
источник

AD

Anastasiya Dyachenko in pro.elixir
Suren Kirakosyan
И это ещё не завершённая версия, там ещё можно рассмотреть другие случаи.
Я пробовал написать это другим способом, но у меня не получается написать понятную ошибку для каждого случая с использованием, скажем, Ecto.Changeset. В итоге пришёл к выводу, что так будет лучше, но вот я уже столько условий поставил, что сам запутался.
А зачем вообще комбинировать разные ошибки в одно условие? Почему отдельно как обычно не проверять каждое поле?
источник

AN

Alexey Novoselov in pro.elixir
Suren Kirakosyan
Привет всем. Кто может помочь с рефакторингом этого кода?

 @username_regex ~r/^[[:alnum:]]+(\.[[:alnum:]]+)?$/
 @mail_regex ~r/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/
 defp check_username_or_email_and_password_on_blink(username, email, password) do
   IO.inspect(username)
   IO.inspect(email)
   IO.inspect(password)

   cond do
     username == nil && email == nil && password == nil ->
       "Please type username, email and password"

     username == nil && email == nil && String.length(password) <= 2 ->
       "Please type username and email. Password is shorter"

     username == nil && email == nil && String.length(password) >= 11 ->
       "Please type username and email. Password is longer"

     username == nil && email == nil && password != nil ->
       "Please type username, email."

     username != nil && String.length(username) <= 2 && email == nil &&
         String.length(password) <= 2 ->
       "Username shorter. Password shorter"

     username != nil && String.length(username) >= 11 && email == nil &&
         String.length(password) <= 2 ->
       "Username longer. Password shorter"

     username != nil && String.length(username) >= 11 && email == nil &&
         String.length(password) >= 11 ->
       "Username longer. Password longer"

     username == nil && String.length(email) <= 2 && String.length(password) <= 2 ->
       "Email shorter. Password shorter"

     username == nil && String.length(email) >= 11 && String.length(password) <= 2 ->
       "Email longer. Password shorter"

     username == nil && String.length(email) >= 11 && String.length(password) >= 11 ->
       "Email longer. Password longer"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
         String.length(password) <= 2 ->
       "Wrong username format. Password shorter"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
         String.length(password) >= 11 ->
       "Wrong username format. Password longer"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       "Wrong username format"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
         String.length(password) <= 2 ->
       "Wrong email format. Password shorter"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
         String.length(password) >= 11 ->
       "Wrong email format. Password longer"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       "Wrong email format"

     password == nil ->
       "Please type password"

     String.length(password) <= 2 ->
       "Password shorter"

     String.length(password) >= 11 ->
       "Password longer"

     username != nil && Regex.match?(@username_regex, username) == true && email == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       %{username: username}

     username == nil && Regex.match?(@mail_regex, email) == true && String.length(password) >= 3 &&
         String.length(password) <= 10 ->
       %{email: email}

     true ->
       :error
   end
 end
на паттерн-матчинг надо все переделать
источник

SK

Suren Kirakosyan in pro.elixir
Anastasiya Dyachenko
А зачем вообще комбинировать разные ошибки в одно условие? Почему отдельно как обычно не проверять каждое поле?
Как отдельно?
источник

AD

Anastasiya Dyachenko in pro.elixir
Suren Kirakosyan
Как отдельно?
Как в любом гайде c chageset-ом например
источник

AN

Alexey Novoselov in pro.elixir
Suren Kirakosyan
Как отдельно?
ну каждое условие в шапку функции и пачку функций
источник

SK

Suren Kirakosyan in pro.elixir
Alexey Novoselov
на паттерн-матчинг надо все переделать
C case пробовал такая же проблема.
источник

SK

Suren Kirakosyan in pro.elixir
Можете мне пару строк примерного кода бросить, я остальное соберу.
источник

AN

Alexey Novoselov in pro.elixir
Suren Kirakosyan
C case пробовал такая же проблема.
условия можно прямо в шапке проверять. и работает быстрее
источник

AD

Anastasiya Dyachenko in pro.elixir
Вот принципиально матчить вариант когда username =nil и password= nil вместе? Почему это не  матчить отдельно
источник