@proelixir

Страница 612 из 1045
Alexander
05.06.2017
13:21:05
облегчишь либу )

а то написали хуеты

=))

Dmitry
05.06.2017
13:21:22
Я хз где это

Google
Dmitry
05.06.2017
13:21:43
Я чуть работал с кастомными типами для postgis

С другой стороны ты тогда в ошибках получить required uuid вместо invalid uuid

Так что ещё хз как по дзену лучше

Alexander
05.06.2017
13:23:05
https://github.com/elixir-ecto/ecto/blob/master/lib/ecto/changeset.ex#L478

я думаю это надо удалить

раз по дзену ))

я хочу что-то что можно сматчить

а экто просто падает

т.к ты дал ему невалидный UUID

мне подойдет что угодно, nil/пустая_строка да все что угодно

но не упавший процесс )

Dmitry
05.06.2017
13:25:04
Смотри как, оказывается они в касте инвалидируют чейнджсет

Google
Alexander
05.06.2017
13:26:59
интересно, а они удаляют ишшью??



Alexey
05.06.2017
13:27:15
Dmitry
05.06.2017
13:27:32
Оказывается я был не прав

Надо для невалидного uuid в имплементации протокола Ecto.Type из метода cast возвращать :Invalid

Осталось найти где это

Alexander
05.06.2017
13:28:29
Оказывается я был не прав
меня устроит если ты назовешь своего первенца - Александр )

Dmitry
05.06.2017
13:29:04
Чувак, я это заскриню!

Rumata
05.06.2017
13:29:16
Какие вы тут

Dmitry
05.06.2017
13:29:16
А то моя жена хочет Глеба, а я хочу Сашу

Какой нахуй Глеб?

Rumata
05.06.2017
13:29:49
Глеб

Ты же вылитый Глеб

Dmitry
05.06.2017
13:30:40
@noma4i , тыкни плиз где реализация ууид в экто

Alexander
05.06.2017
13:30:53
они проксируют

я им тесты написал чтобы показать что все падает к хуям

Dmitry
05.06.2017
13:31:30
Всмысле проксируют?

Александр
05.06.2017
13:31:36
https://github.com/elixir-ecto/ecto/blob/master/lib/ecto/uuid.ex ?

Alexander
05.06.2017
13:31:47
https://github.com/elixir-ecto/ecto/pull/1704

Google
Alexander
05.06.2017
13:32:29
они потом какую-то чушь начали обсуждать

https://github.com/elixir-ecto/ecto/issues/1705

Dmitry
05.06.2017
13:32:46
Правда нихуя не понятно

Alexander
05.06.2017
13:33:26
вот он каст сделан https://github.com/elixir-ecto/ecto/pull/1719/commits/a6f06e4147b5cd79dac23c945f12da23a3297103

но теперь его надо в валидацию ченджсета засунуть

Taras ?
05.06.2017
13:33:55
Твоё лицо когда внезапно прочитал доку к экто
задолбаться с экто имхо проще просто писать sql

Alexander
05.06.2017
13:34:29
а не, они все равно рейзят

:error -> raise Ecto.CastError, "cannot cast #{inspect value} to UUID"

збс решение

Dmitry
05.06.2017
13:35:06
во дибилы

Можно же вернуть :invalid

Alexander
05.06.2017
13:35:29
ага, я там именно это и просил

чтобы сматчить

Александр
05.06.2017
13:35:42
не, там же cast!

он так и должен работать

Rumata
05.06.2017
13:36:06
Так

Александр
05.06.2017
13:36:11
а выше в коде (changeset где) там использовался cast

Rumata
05.06.2017
13:36:18
Тоесть кто-то не дебил ?

Александр
05.06.2017
13:36:22
то есть пока всё выглядит логично и правильно

Google
Alexander
05.06.2017
13:36:23
а выше в коде (changeset где) там использовался cast
https://github.com/shhavel/ecto/blob/a6f06e4147b5cd79dac23c945f12da23a3297103/lib/ecto/uuid.ex#L17

все, увидел

Rumata
05.06.2017
13:36:37
Ого

Alexander
05.06.2017
13:36:53
ок, тогда обратно к тому что это надо вкрутить внутрь ченджсета

Rumata
05.06.2017
13:37:25
Почему ?

И почему не вкрутили ?

Dmitry
05.06.2017
13:37:48
не складывается чувак

Не приняли потому что каст кривой

Александр
05.06.2017
13:37:58
в ченджсете тоже всё выглядит верно

Admin
ERROR: S client not available

Александр
05.06.2017
13:38:02
может поправили уже?

Dmitry
05.06.2017
13:38:38
Сравни это https://github.com/shhavel/ecto/blob/a6f06e4147b5cd79dac23c945f12da23a3297103/lib/ecto/uuid.ex#L16 с вот этим https://github.com/elixir-ecto/ecto/blob/master/lib/ecto/uuid.ex#L16

Александр
05.06.2017
13:39:33
аа, ну да добавили обработку исключений в мастере

то есть по сути исправлено

> Ecto.UUID.cast("sdfd") :error

Dmitry
05.06.2017
13:40:08
Нет, всё не правильно

Александр
05.06.2017
13:40:10
исключений не кидает

ну может я не понимаю сути проблемы....

Alexander
05.06.2017
13:40:29
> Ecto.UUID.cast("sdfd") :error
по факту все запросы в это надо оборачивать

Dmitry
05.06.2017
13:40:35
cast должен возвращать :invalid а не :error

Google
Alexander
05.06.2017
13:40:42
суть проблему - бойлерплейт

так то я могу и сам написать всю матчилку UUID

Александр
05.06.2017
13:41:07
Alexander
05.06.2017
13:41:38


вот примерно такой у меня код

Dmitry
05.06.2017
13:41:57
Не, я наврал

Должно возвращать :error

Тогда я не понимаю почему не работает

Alexander
05.06.2017
13:42:17
Не, я наврал
тогда Глебом назовешь сына )

Taras ?
05.06.2017
13:42:42
Тогда я не понимаю почему не работает
потому что компилятор часто глючит?

Александр
05.06.2017
13:44:11
нет, не работалО почему? и не будет работать с кастомными типами

Dmitry
05.06.2017
13:44:24
Не верю я что-то в это

Александр
05.06.2017
13:44:32
был просто паттерн матчинг, без обработки исключительных ситуаций

Dmitry
05.06.2017
13:44:33
Всё логично написано

Александр
05.06.2017
13:44:49
потому возникал runtime error из-за того что не мог заматчиться

Dmitry
05.06.2017
13:44:52
Вызывает cast из протокола

и в любом случае получаешь invalid

Александр
05.06.2017
13:45:15
Александр верно говорит, что обработка исключений должна стоять при попытке каста

любого каста

то есть они течь заткнули в конкретном месте

но возможность расширения системы типов екто так же проблематична

Alexander
05.06.2017
13:48:13
я уже говорил, что в эликсире везде попытки заткнуть дырки

Страница 612 из 1045