
Anton
06.09.2018
14:10:00
очень

Igor
06.09.2018
14:10:07
Не, я про то, как динамичность типизации связана с тем, что вы херню творите в коде?
Типа «мы типы выводим в рантайме, а не во время компиляции — можем писать, что хотим»?

Sergey
06.09.2018
14:10:40

Google

Sergey
06.09.2018
14:10:45
Как бы ты без present? проверил?

Anton
06.09.2018
14:10:56
мой поинт к тому, что презент не просто так появился, а как костыль для конкретной проблеме
хуевый костыль, но что поделать

Igor
06.09.2018
14:11:20

Sergey
06.09.2018
14:11:39
ну вот тебе из формы придет либо nil либо ''
значит ты будешь писать или условие
да еще и с save call

Igor
06.09.2018
14:11:54
Эээ
Валидация и нормализация
Никакой save и blank? там не нужен
См. dry-validation — идеи там
Можно наворотить через core coercions

Sergey
06.09.2018
14:12:43

Google

Pavel
06.09.2018
14:12:47
У dry-validation есть отличный инструмент type_specs

Igor
06.09.2018
14:12:49
а
Нормализация:
irb(main):001:0> String(nil)
=> ""

Sergey
06.09.2018
14:13:04

Igor
06.09.2018
14:13:26
Внутри dry-v и подобных я был, и там творится Lisp

Fedor
06.09.2018
14:13:44
но зачем, если можно просто проверить на empty

Igor
06.09.2018
14:14:04
Ура говнокоду!

Fedor
06.09.2018
14:14:04
что уже входит в функционал языка

Sergey
06.09.2018
14:14:06
ну собтвенно да
Это не гавнокод. Это другой подход

Igor
06.09.2018
14:14:25
Хорошая попытка, но нет

Sergey
06.09.2018
14:14:26
Более упрощенный и менее правильный

Fedor
06.09.2018
14:14:31
ну тоесть если не dry - то говнокод?

Sergey
06.09.2018
14:14:33
но не как уж не dirty hack

Fedor
06.09.2018
14:14:36
а аргументация то есть

Sergey
06.09.2018
14:14:40
видимо да

Fedor
06.09.2018
14:14:41
?

Igor
06.09.2018
14:14:42
dry в других языках нет, а идеи есть
что тут не так?

Google

Fedor
06.09.2018
14:14:52
ну тоесть если не java, то говнокод?

Igor
06.09.2018
14:15:04
ага, если не хаскель, то можно хоронить язык
/s

Fedor
06.09.2018
14:15:18
ну или так

Anton
06.09.2018
14:15:27
Как бы ты без present? проверил?
UserName = Type::String.constrained(min_size: 3) | Type::Null
UserName['anton'] # => valid
UserName[nil] # => valid
UserName[''] # => invalid
UserName['so'] # => invalid

Fedor
06.09.2018
14:16:06
ну вот Null objects приехали (
у нас же nil есть
зачем нам еще нулы

Anton
06.09.2018
14:16:27
это не null объект, это null type
разные вещи

Fedor
06.09.2018
14:17:23
ну такое
я бы сказал, одного поля ягоды

Fedor
06.09.2018
14:17:51
Вот у тебя в результате не пустую строку валидация упадет

Anton
06.09.2018
14:17:57
неа, нул объект просто реализует пустой интерфейс
а нил тайп говорит о том, являются данные чем-то или нет

Fedor
06.09.2018
14:18:13
а зачастую html формы пихают ее туда, где json оставил бы nil

Igor
06.09.2018
14:18:36
Возможно, это как-то связано с тем, что в HTML формах нет типов

Anton
06.09.2018
14:18:46
и это тоже

Sergey
06.09.2018
14:19:05

Fedor
06.09.2018
14:19:11
ну что поделать, мы живем в жутком несовершенном мире, придуманном глупыми кожанными мешками органов

Google

Sergey
06.09.2018
14:19:39
В ином случае ты просто притащил лишнию либу, когда у тебя уже все это из коробки, более грязно, но есть)

Anton
06.09.2018
14:22:18

Andrey
06.09.2018
15:15:17
Всем привет, я форкнул себе гем, переделал его, удалил старый, добавил строку в гемфайл gem 'lmtp', git: 'https://github.com/apaokin/ruby-lmtp'. Гем не появляется в каталоге, bundle install ошибки не выдает. Что можно сделать с этим?

rekero
06.09.2018
15:18:16
В каком каталоге?

Andrey
06.09.2018
15:18:57
~/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems
Если есть сомнения, то require тоже не работает :)

Admin
ERROR: S client not available

Andrey
06.09.2018
15:41:57
Проблема закрыта, Gemfile был совершенно в другом месте, думал, что require сработает

Odebe
06.09.2018
20:20:13
Привет. Кто-нибудь проверял с помощью dry-validation параметры для моделей с файлами?
Проблема в том, что мне нужно проверять наличие поля только в том случае, если модель новая или передан файл. (модель я передаю в .with())
Если я пишу rule или validate, то они срабатывают, только если сработали required или optional для этого поля.
Как это решить? В смысле, может, это вообще не так задача, которую стоит пытаться решить с помощью dry-v?
Как вариант написать два разных валидатора для разных экшенов (но тогда наверное стоит сделать точно так же для других моделей) или даже собирать валидаторы по частям (типа такого https://gist.github.com/Odebe/7192ccf6ae8583b365828a8737a9ea54), но эти варианты как-то всё слишком усложняют.

Sergey
07.09.2018
07:07:22
Все, привет!
Кто знает, есть какой-нибудь хелпер который умно умеет добавлять параметр в запрос?
Типа если там уже есть параметр, то он добавит & вместо ?

Zamira
07.09.2018
07:08:09

Sergey
07.09.2018
07:09:39
У меня урл это строка, к ней конкатится параметр
И ещё и ещё
Т.е. есть ещё условия к наличию параметров

Zamira
07.09.2018
07:10:37
А причем тут тогда "хелпер, который добавляет параметр в запрос". Вы бы лучше спросили что нибудь по строкам тогда)

Artur
07.09.2018
07:10:39

Sergey
07.09.2018
07:10:56
Но вообще идея правильная, можно просто их в конце добавить через переменную
В которой уже будут нужные по всем условиям

Zamira
07.09.2018
08:27:15
Ребят, очень нужна помощь по эластику. Может кто сталкивался.
Есть поле, в котором вперемешку идут русские и английские слова. lowercase токен фильтр работает только с русскими словами. Как это можно исправить?

Igor
07.09.2018
08:58:48

Google

Odebe
07.09.2018
09:10:31
Ну или я не понял.

Dmitry
07.09.2018
12:33:09
Ребят, подскажите если гонять рельсоприложения в амазоне в контейнере, то как лучше всего организовать миграцию базы, делать это отдельной таской или впилить прямо перед стартом приложения?

Dmitriy
07.09.2018
12:53:18
Привет ребята! В свободное время я пишу свой проект для быстрого создания административных панелей, которая не привязана к определенному языку программированию. Пожалуйста дайте свой фидбек!
http://getsimpleadmin.com

Sergey
07.09.2018
13:46:55

Dmitriy
07.09.2018
13:47:14
бесплатно все, это альфа версия

Sergey
07.09.2018
13:49:57
А импорта данных нет?
Ну если я правильно понял, это приложение поможет мне загрузить свою бд в это приложение и проводить какие-то манипуляции с сортировкой и тд
@dmitriystrukov верно или я не верно понял концепию?

Marsel
07.09.2018
13:53:19
тут наверное гем добавляет в твое приложение роуты, по которым будет дергать данные когда на вебморде ты что-то делаешь

Sergey
07.09.2018
13:53:52
проект для быстрого создания административных панелей, которая не привязана к определенному языку программированию. - выглядит как SaaS приложение

Marsel
07.09.2018
13:54:31
я предположил, подождем автора)

Dmitriy
07.09.2018
13:56:11
облачная админка, что-то в таком духе

Артур
07.09.2018
13:56:56
хитрая схема

Sergey
07.09.2018
13:57:16
то есть на стороне бизнеса, должно быть специальное api, которое отдает данные