@proRuby

Страница 212 из 1594
Andrey ?
02.10.2016
09:14:12
Понятное дело

Alexander
02.10.2016
09:28:40
Есть претензии - можешь смело высказать их Матцу)
Кстати, можно просто пропатчить класс, делается легко. Будет тебе хоть строка

Alex
02.10.2016
16:28:46
Что то не могу понять чего рубокоп ругается на это: if spec.respond_to?(:metadata) spec.metadata["allowed_push_host"] = "https://rubygems.org" else raise "RubyGems 2.0 or newer is required to protect against public gem pushes." end Use a guard clause instead of wrapping the code inside a conditional expression. (Style/GuardClause)

Ivan
02.10.2016
16:31:56
в общем, убери else и поставь на его место end

Google
Nikolay
02.10.2016
16:34:42
видимо потому что метод состоит только из этого условия

Nikolay
02.10.2016
16:34:59
сделай raise unless

а остальное без условия

Alex
02.10.2016
16:35:14
Alexander
02.10.2016
16:35:31
видимо потому что метод состоит только из этого условия
не обязательно только, достаточно чтобы некое условие стояло в конце (даже без else)

Alex
02.10.2016
16:36:14
Стояло в конце? ты имеешь ввиду blablah unless и т.д? я знаю что такое guard clause. Я не понимаю чего он именно к этому куску прицепился.

Выглядит вполне логичным условием.

Хотя возможно именнно потому что он это понял и решил что логичнее просто raise сначала ввести вместо такого условия.

Nikolay
02.10.2016
16:37:46
зато если сделаешь raise unless, то будет ругаться на длину строки

я бы оставил так

Alexander
02.10.2016
16:38:23
Стояло в конце? ты имеешь ввиду blablah unless и т.д? я знаю что такое guard clause. Я не понимаю чего он именно к этому куску прицепился.
def method # some action # some another action if condition # action for condition end end необязательно, чтобы метод из условия состоял. здесь важное, что условие в конце метода, перед результатом

Google
Alex
02.10.2016
16:38:35
Я понял тебя, спасибо.

Alexander
02.10.2016
16:39:03
Хотя возможно именнно потому что он это понял и решил что логичнее просто raise сначала ввести вместо такого условия.
смысл всего этого — чтобы тело метода (его логика) была без лишней индентации, а невалидные случаи отсекались проверкой раньше

Alex
02.10.2016
16:39:04
unless spec.respond_to?(:metadata) raise "RubyGems 2.0 or newer is required to protect against public gem pushes." end spec.metadata["allowed_push_host"] = "https://rubygems.org"

Так норм вполне.

Alexander
02.10.2016
16:39:28
Так норм вполне.
да, вполне. строчку можно вынести в переводы или константу, например, но да.

Alex
02.10.2016
16:39:38
Это gemspec

этот код по дефолту бандлером генерится.

https://github.com/Fedcomp/active_sms А вот кстати сам гем. Унифицированная отправка смсок в руби

Nikolay
02.10.2016
18:48:25
допилил таки

>active ну такоэ

Alex
02.10.2016
18:48:32
Ага, теперь хоть юзать можно.

Alexander
02.10.2016
18:48:47
https://github.com/Fedcomp/active_sms А вот кстати сам гем. Унифицированная отправка смсок в руби
молодец. но на мой вкус функциональщина (классовые методы). а ещё неясно, например, может ли работать с mcommmunicator, например

>active ну такоэ
да, тоже смутило, но спасибо, что без active_support в зависимостях

Alex
02.10.2016
18:49:06
Гем сам по сбее ни с кем не работает

да, тоже смутило, но спасибо, что без active_support в зависимостях
Это было самое важное. Сделать гем не завязанным на рельсы, а просто рубишный.

Alexander
02.10.2016
18:49:30
Гем сам по сбее ни с кем не работает
да я понял, но не вижу нормального примера конфига / написания прослойки

Alex
02.10.2016
18:49:33
Теперь поверх него будет версия для рельс, но потом.

да я понял, но не вижу нормального примера конфига / написания прослойки
Есть в доках пример написания своего обработчика.

https://github.com/Fedcomp/active_sms#writing-your-own-sms-backend

Google
Alexander
02.10.2016
18:50:39
Это было самое важное. Сделать гем не завязанным на рельсы, а просто рубишный.
не так уж и сложно) я разве что себе иногда помогаю своим же gem'ом альтернативой active_support (с другим механизмом работы), есть замены функциональные, а так несложно

Lupsick
02.10.2016
18:50:53
ну так легче взять гем компании https://github.com/asiniy/sms_ru

и отправлять сразу без ебли

а тут бекенд какой-то писать

Alexander
02.10.2016
18:51:50
ну так легче взять гем компании https://github.com/asiniy/sms_ru
фишка в том, что не только sms_ru позволяет отправлять смс

Lupsick
02.10.2016
18:52:07
фишка в том, что не только sms_ru позволяет отправлять смс
фишка в том, что ты обычно юзаешь апи какой-то компании для отправки смс

не кучу, а одну

Alexander
02.10.2016
18:52:17
а абстракции — это хорошо. у тебя один интерфейс, замена кода минимальна. но пригождается редко, да

не кучу, а одну
здесь на руку прослойка, если провайдер сменится

Alex
02.10.2016
18:52:43
Lupsick
02.10.2016
18:52:53
Alex
02.10.2016
18:52:53
Но тем не менее видеть код

Alex
02.10.2016
18:52:55
что ты делаешь?

потому что на локалке у тебя фронтендер может разрабатывать например

с какой стати он будет реальные смски слать?

Lupsick
02.10.2016
18:53:15
я сделал себе воркер который смотрит ивенты в amqp и отправляет нотификации

Alexander
02.10.2016
18:53:18
почему не отправлять?
ну потому что зах для тестов одной вещи тянуть ещё отправку смс? ну, деньги тратить на это

Alex
02.10.2016
18:53:27
а теперь ты понял что smsru гавно, что теперь? переписывать весь код который его юзает.

Проще взять унифицированный интерфейс с кучей реализаций.

Особенно если у тебя нет предпочтения по сервису.

Google
Nikolay
02.10.2016
18:53:51
у нас в разное время юзалось 4 разных провайдера для смс

Alexander
02.10.2016
18:53:52
Проще взять унифицированный интерфейс с кучей реализаций.
вот только их не хватает (для примера хотя бы)

Nikolay
02.10.2016
18:54:05
то дорого, то даунтайм в два дня у провайдера, то еще что-то

Alex
02.10.2016
18:54:07
Да, согласен. Это тоже важная часть

Alexander
02.10.2016
18:54:11
у нас в разное время юзалось 4 разных провайдера для смс
вот да, у меня такого нет, но знаю, что бывает

Alex
02.10.2016
18:54:14
в дальнейшем напилю побольшще реализаций.

то дорого, то даунтайм в два дня у провайдера, то еще что-то
Тоже верно. Можно относительно быстро перепрыгнуть на другого провайдера.

Admin
ERROR: S client not available

Alexander
02.10.2016
18:54:45
так. зачем юзают active_record и sequel, если есть pg и mysql? ну, эээм

(не очень корректный пример, но утрированный и доходчивый, я надеюсь)

Lupsick
02.10.2016
18:55:11
Тоже верно. Можно относительно быстро перепрыгнуть на другого провайдера.
дак тебе надо бекенд написать в твоем случае для начала

нихуя себе быстро

Alex
02.10.2016
18:55:15
В общем когда мне пришлось столкнуться с смсками в моей работе, я сначала думал что будет просто. Потом понял что подводных косяков полно.

дак тебе надо бекенд написать в твоем случае для начала
У меня будет некоторое количество готовых реализаций.

Alexander
02.10.2016
18:55:37
нихуя себе быстро
это может занять пол-дня, не 1-2

Alex
02.10.2016
18:55:56
смс-бэкенд на самом деле быстро пишется :/

Lupsick
02.10.2016
18:55:57
это может занять пол-дня, не 1-2
ты можешь взять готовый гем компании (который обычно есть)

Alex
02.10.2016
18:56:09
Который vendor lock.

Lupsick
02.10.2016
18:56:16
и что лол

Google
Alexander
02.10.2016
18:56:18
потому что меняешь один (!) файл, а не всё, где делается отправка смс. если ты молодец — то ты уже написал свою прослойку для этого. если нет — вот гем. полезная вещь

Lupsick
02.10.2016
18:56:20
switch case

Alexander
02.10.2016
18:56:30
ты можешь взять готовый гем компании (который обычно есть)
и менять код по всему проекту, ага. весело

Lupsick
02.10.2016
18:56:40
Alexander
02.10.2016
18:56:46
а можешь ЕГО ЖЕ (вендроный гем) заюзать на бэкенде прослойки

воркер для нотификаций
не все любят воркеры. советую поискать статью на тему, почему подход с воркерами плохой.

Alex
02.10.2016
18:57:12
воркер для нотификаций
Смски могут не только в воркере юзаться

разные юзкейсы бывают.

не спорю, сам совал в воркера и везде его юзал.

Lupsick
02.10.2016
18:57:43
Смски могут не только в воркере юзаться
что значит не только в воркере юзаться?

Alex
02.10.2016
18:57:48
Но в рубишном скрипте например воркеров не будет.

Lupsick
02.10.2016
18:57:48
у тебя в amqp заходит заявка

типа отправь тому-то

воркер смотрит, отправляет

Alexander
02.10.2016
18:58:09
Alex
02.10.2016
18:58:11
Это в рельсах.

У меня общерубишный гем.

Lupsick
02.10.2016
18:58:30
каких рельсах бля

берешь ставишь rabbitmq докером

или не докером

и сидишь слушаешь отдельным рубишным скриптом что там происходит

Страница 212 из 1594