
Fedor
11.10.2017
07:45:26
там определяется api, transport и.т.д.
в рельсе это обычно все завернуто через elasticsearch_proxy, кторое работает через модель

Mark
11.10.2017
07:46:21
ок
буду разбираться

Google

Mark
11.10.2017
07:47:59

Fedor
11.10.2017
07:48:36
да

Mark
11.10.2017
07:49:10
??

Fedor
11.10.2017
07:49:10
https://www.chewy.com/
)))

Mark
11.10.2017
07:49:28
:D

Alex
11.10.2017
09:44:39
https://habrastorage.org/webt/59/dd/d6/59ddd6467ea2f175840109.jpeg

Alexander
11.10.2017
10:10:34
@davydovanton а подскажи по архитектуре дра транзакций. допустим мне надо сделать create но там будут создавать 3 зависимые модели. post, comments, author например. как это лучше описать в шагах. или может это будут три транзакции обединенные в цепь?

Anton
11.10.2017
10:13:27
я бы на самом деле посоветовал бы обернуть все в один метод (#call) а потом уже понять, что и как на шаги разбивать. что бы интерфейс выглядил как транзакция, можешь вот такую штуку заинклюдить в класс:
include Dry::Matcher.for(:call, with: Dry::Matcher::EitherMatcher)
тогда, если твой сервис будет возвращать either монаду, передавая с вызовом call блок - сможешь работать как с "транзакцией"
а потом, как будут тесты + вся логика в одном месте - сможешь понять какие шаги нужны и заинклюдить транзикцию и спокойно все раскидать
ну, я во всяком случае обычно так и делаю, если явно не знаю ничего

Alexander
11.10.2017
10:16:31
ааааа.... сложна!!!! то есть сначала сделать одну транзакцию со стандартными шагами(validate, persist итд) а потом уже будет видно? просто я не понял зачем там нужна Either монада, когда уже есть право и лево

Anton
11.10.2017
10:21:29
https://gist.github.com/davydovanton/d8e9bd390b2f2e496a49011a7be32913

Google

Anton
11.10.2017
10:21:48
в таком случае у тебя интерфейс будет один и тот же, но уже в самом объекте сможешь делать что захочешь
и переписать его на транзакции
+ у тебя тесты не поломаются, потому что интерфейс не поменяется
ну собственно. в чем беда обычно? не знаешь требований и не знаешь какой код напишешь. Плюс тебе проще разделять уже существующий код на какие-то шаги. Вот таким подходом ты:
1. сначала изолируешь логику в один объект с одним интерфейсом
2. написав логику, начинаешь разделять ее (интерфейс объекта основного не меняется)
3. когда какой-то шаг становится слишком большим (сам поймешь), изолируешь его в отдельный объект
...
PROFIT

Alexander
11.10.2017
10:25:38

Anatoly
11.10.2017
10:57:53
Ребят, почему валидация рельсы в случае с uniqueness + scope не может смотрит уникальный индекс, а делает запрос в базу SomeModel Exists (0.3ms)

Alexander
11.10.2017
10:59:36
теперь сайдкик. например мне надо поднять один сайдкик с канкаренси 25 и другой с 15, это как нызвается в рамках сайдкика? как нагуглить?

Alex
11.10.2017
11:41:15

Alexander
11.10.2017
11:46:51
похоже надо будет как то два сайдкика поднимать рядом с разными конфигами

Alex
11.10.2017
11:48:20
сайдик думаю вполне себе аргументы принимает

Vasiliy
11.10.2017
11:49:38
нужно больше сайдкиков богу сайдкиков

Alexander
11.10.2017
11:49:41
да я думую разбить сервис с нашими бекграугд жобами, на 2 и больше. хотя надеялся обойтись каким то расширенным конфигом

Alex
11.10.2017
11:51:02
серьезно? не нашел? :)

Alexander
11.10.2017
11:54:12

Alex
11.10.2017
11:54:44
> я искал внутри документации
я в первую очередь забил бы в гугол, а потом из гугла выскочил либо в документацию гема, либо на сторонний гем.

Ярослав
11.10.2017
11:59:23

Google

Alexander
11.10.2017
14:30:38
grape-swagger + rails api mode выдает мне на страницу со сваг докумментацией просто жсон. что я делаю не так?

Alexey
11.10.2017
14:36:13

Dmitriy
11.10.2017
14:36:40
Ребят, кто знает, как в Capfile получить значение environment, который передается при вызове CLI команды капистрано cap staging deploy? Т.е. в Capfile нужно понять staging или production передается параметром

Alex
11.10.2017
14:38:29
fetch вроде
по крайней мере в сценариях он был насколько я помню
можно внутри сценария посмотреть где fetch определен.

Alexey
11.10.2017
14:39:44
Вроде stage
если юзается capistrano/ext/multistage

Dmitriy
11.10.2017
14:44:12
спасибо, посмотрю
вот так вот еще можно:
ARGV[0]

Максим
11.10.2017
15:01:30
пацнацы
делали с эмбером чего?
не могу понять как наш фронт работает вообще

Dmitriy
11.10.2017
15:38:43
Да...а в чем вопрос?

Максим
11.10.2017
16:09:22
Да чет не могу ща понять вообще как Эмбер работает
Типа на базовом уровне
Ну типа вот апи вот эмбер
Вот стукнулись получили джсон
Что дальше

Aldar
11.10.2017
16:10:55
дальше магия

Google

Максим
11.10.2017
16:13:25
Примерно так и я вижу

Dmitriy
11.10.2017
16:26:05
Эм...ну есть определенные составляющие, изучаешь компонент за компонентом и понимаешь как это работает.
Документацию почитай, хз что ещё посоветовать ))

Lupsick
11.10.2017
18:26:17
посоны, а pry работает в production?

Dmitriy
11.10.2017
18:26:35
лооооллл
а зачем?

Lupsick
11.10.2017
18:26:59
я оставил брейкпоинт давно лол
забыл

Dmitriy
11.10.2017
18:27:08
пхах _)

Dmitriy
11.10.2017
18:27:09
а зачем?
Чтобы забыть его там и повесить сервак

Lupsick
11.10.2017
18:27:10
ща нашел
он должен отключаться в проде
так-то

Dmitriy
11.10.2017
18:27:45

Dmitriy
11.10.2017
18:28:01
ну он должен быть в дев тест групе

Lupsick
11.10.2017
18:28:02

Nikolay
11.10.2017
18:28:06
если гем в общей группе, то остановится

Lupsick
11.10.2017
18:28:27
лол ну короче в общей
ладно

Nikolay
11.10.2017
18:29:06
иначе в проде нельзя было б дебажить

Google

Nikolay
11.10.2017
18:29:15
а без этого как жить-то
*табличка сарказм*

Dmitriy
11.10.2017
18:30:46
puts debugging

Alex
11.10.2017
18:33:12
в докере - binding.pry если не терминал напрямую то не отрабатывает

Lupsick
11.10.2017
18:33:37

Alex
11.10.2017
18:33:39
выкидывает в отладочную сессию и сразу из нее выходит
но хер знает, может и зависнет

Lupsick
11.10.2017
18:33:50
а
у нас докер

Alex
11.10.2017
18:34:17
у меня в docker up оно показывало отладочную сессию и сразу заканчивало
а вот в docker run все как надо.

Anton
11.10.2017
18:34:26

Alex
11.10.2017
18:34:32

Anton
11.10.2017
18:34:40
Или так, да

Nikolay
11.10.2017
18:41:52

Alex
11.10.2017
18:42:06
а потом в docker run