
Alex
10.11.2016
12:01:01
Теперь динамически мне class построй

johnny
10.11.2016
12:01:46

Alex
10.11.2016
12:01:52
а рельсы тут причем?

johnny
10.11.2016
12:02:25
и с руби с и рельсами. понятия не имею как динамически класс построить

Google

johnny
10.11.2016
12:02:33
и даже что это значит

Alex
10.11.2016
12:02:41
не класс а class
госпаде, у html класс из двух строчек составь
для элемента

I
10.11.2016
12:03:19
да и класс можно динамически создать
но это уже совсем другая история)

Alex
10.11.2016
12:03:27
Можно, но это вообще не о том.
Меня прикалывает как я могу писать руби код чтобы создавать класс в рантайме прямо внутри класса.
я знаю, я фигней страдаю.

I
10.11.2016
12:04:49
да, можно писать class=""

Alex
10.11.2016
12:05:01
В хамле тоже можно класс приписать вроде как.

johnny
10.11.2016
12:05:02
ага, strong#message class='code'

Alex
10.11.2016
12:05:13
Так что тот пример не совсем честный

Google

Alex
10.11.2016
12:05:20
вроде так в хамле работает %div.lol

I
10.11.2016
12:05:29
да

Alex
10.11.2016
12:05:29
#lol так тоже работает

I
10.11.2016
12:05:32
я так делал

Alex
10.11.2016
12:05:46
Всякие data и прочие атрибуты в скобочках да.
Хотя я когда слим шаблон сконвертировал из хамла он мне показался менее читабельным, возможно надо с slim поработать побольше.
rspec matcher писал кто?
есть идеи как блок description do тестом покрыть?
как получить сообщение которое он генерит в наиболее приближенных к боевым условиях?

I
10.11.2016
12:26:11
ты тестируешь документацию?

Alex
10.11.2016
12:26:35
да, тестирую какой вывод оно в rspec кинет

I
10.11.2016
12:27:13
да, вижу оригинал, откуда взят)

Alex
10.11.2016
12:27:35
Это единственный не переписанный кусок потому что я не знаю еще как его тестом обложить.

I
10.11.2016
12:28:13
а зачем ты покрываешь тесты тестами?

Alex
10.11.2016
12:29:08
Зачем я покрываю кастомный матчер тестами?
мне кажется ответ очевиден, разве нет?

I
10.11.2016
12:30:37
не до конца
от этого matcher'a не зависит работоспособность твоей системы

Alex
10.11.2016
12:31:04
Я хочу чтобы матчер гарантировано показывал кастомную ошибку/описание.

I
10.11.2016
12:31:21
ты это в отдельном геме делаешь?

Alex
10.11.2016
12:31:26
Я никак не могу проверить что матчер генерирует правильный дескрипшен кроме как вручную (на данный момент)

Google

Alex
10.11.2016
12:31:27
Да!

I
10.11.2016
12:31:27
ну, этого matcher'a
а, ну тогда ладно

Alex
10.11.2016
12:31:35
Это публичный гем.

I
10.11.2016
12:31:51
ммм, типа дополнения для rspec'a?
и он будет в депенденсях на твоем active sms?

Alex
10.11.2016
12:32:05
Я пишу гем по отправке смс
и если у тебя приложение его часто отправляет то ты много раз будешь мокать внутренности гема.
Для этого тебе надо знать как гем работает. Я пишу матчер который позволит все проверять и сам будет мокать что надо.
Ты будешь писать просто короткие конструкции которые будут проверять была ли смс отправлена или нет.

I
10.11.2016
12:32:55
а, ну тогда мне не нравится это решение
кастомный матчер для тестов я бы вынес в отдельный гем
и там бы обложил уже тестом

Alex
10.11.2016
12:33:21
Этот матчер жестко завязан на мой гем

I
10.11.2016
12:33:27
печально

Alex
10.11.2016
12:33:29
зачем мне один файлик выносить в отдельный гем? О_О
Что значит печально?
Я пишу матчер который поможет не мокать каждый раз внутренности гема чтобы проверить что собственный код работает верно.

I
10.11.2016
12:34:15
у тебя получается функционал, который не связан с работой системы и который покрыт тестами
поэтому я бы вынес это в отдельный гем

Alex
10.11.2016
12:34:27
Этот функционал сделан для удобства разработчика.

Google

Alex
10.11.2016
12:34:41
Зачем это выносить в отдельный гем если это относится к моему гему?

I
10.11.2016
12:35:03
чтобы не писать тесты для проверки тестов?

Alex
10.11.2016
12:35:12
Для проверки метчера
Который входит в поставку гема.

Admin
ERROR: S client not available

Alex
10.11.2016
12:35:36
Я пишу тест который проверяет матчер, а не тесты.
У меня нет возможности внедрить матчер в тесты собственного гема чтобы покрыть все его кейсы. К тому же я не смогу так проверить ошибки которые он генерирует.

I
10.11.2016
12:36:50
а матчер у тебя что возвращает?

Alex
10.11.2016
12:37:31
он проверяет дергался ли ActiveSMS.send_sms, и если ему переданы номер и текст то проверяет что он дергался именно с тем номером и текстом, при этом опционально можно замокать результат для обычного кода.

I
10.11.2016
12:37:57
ммм
true/false возвращает?
ошибок не кидает?

Alex
10.11.2016
12:38:10
он на expect'ах
ошибки в смысле raise?
я expect'ы юзаю, они сами рспековую ошибку кидают.
При этом используется мое кастомное сообщение.

I
10.11.2016
12:40:03
https://github.com/rspec/rspec-expectations/blob/master/spec/support/shared_examples.rb
оно?

Alex
10.11.2016
12:40:16
Не катит
Ты можешь например написать вот так
expect { MyRegistrationService.run }.to send_sms
https://github.com/Fedcomp/active_sms/blob/master/lib/active_sms/matchers/send_sms.rb
Получилось слегка трешово, буду перепиливать на обычный класс.

Google

trickster
10.11.2016
13:02:20
ребят, а я могу из кода в log/development.log
что-то выводить?

Alex
10.11.2016
13:02:35
Rails.logger.debug/info/warn/error
Rails.logger.debug("my message")

I
10.11.2016
13:03:05
https://github.com/Fedcomp/active_sms/blob/master/lib/active_sms/matchers/send_sms.rb#L15
puts? хардкор

Alex
10.11.2016
13:03:22
Ого, вот это я лажанул.

trickster
10.11.2016
13:03:30
о
спасибо
@Fedcomp ты уверен по поводу вывода?

I
10.11.2016
13:08:04
а что не так?

trickster
10.11.2016
13:08:06
я смотрю tail -f log/development.log
и ничего не выводится

I
10.11.2016
13:08:25
ну попробуй Rails.logger.info
зависит от уровня в конфигах

Alex
10.11.2016
13:09:23