
Nikolay
20.12.2017
15:29:18
prefix = %w(office shoppingArea warehouse freeAppointment)[block.appointment_code + 1]
cat = [prefix, type.capitalize].joins

Максим
20.12.2017
15:33:26
так так такдавайте ещё

Alexey
20.12.2017
16:07:37
prefix = {
1 => "office",
2 => "shoppingArea",
3 => "warehouse",
4 => "freeAppointment"
}[block.appointment_code]
cat = "#{prefix}#{type.capitalize}"
выриант выше, но для любителей хэшей и интерполяции
но все это идет в топку, когда надо сравнивать по регулярке разные варианты

Google

Alex
20.12.2017
16:35:02

Artem
21.12.2017
07:59:40
http://npmplease.com/

Максим
21.12.2017
09:03:42
какие у кого рюкзаки?

Anton
21.12.2017
09:08:46

Максим
21.12.2017
09:14:23
ссылку?

Alexander
21.12.2017
09:14:43

Anton
21.12.2017
09:15:37
https://www.xd-design.com/bobby

kolas
21.12.2017
09:22:33
надо попробовать его украсть ?

Alexander
21.12.2017
09:25:33

kolas
21.12.2017
09:26:23
просто пентест )

Roman
21.12.2017
09:33:20
Xiaomi

Alexander
21.12.2017
09:35:40
Xiaomi
они уже и рюкзаки начали делать?

Roman
21.12.2017
09:36:19

Google

Roman
21.12.2017
09:36:44
Кроме шуток - хороший рюкзак, и весьма не дорогой

Andrey
21.12.2017
09:53:22
я свой в капсуле покупал. там норм выбор

Nikolay
21.12.2017
09:57:31

Alexey
21.12.2017
10:12:41

Alexander
21.12.2017
13:30:05
а в рспек кроме shared_examples есть еще методы чтобы избежать дублирования?

Vasiliy
21.12.2017
13:34:17
модули можешь писать и инклудить их
https://relishapp.com/rspec/rspec-core/v/3-7/docs/helper-methods/define-helper-methods-in-a-module

Roman
21.12.2017
13:38:41
никто не сталкивался с такой проблемой: редис отвечает ошибкой SocketError: getaddrinfo: Name does not resolve

Vasiliy
21.12.2017
13:39:19
https://stackoverflow.com/questions/9654350/socketerror-getaddrinfo-name-or-service-not-known-sunspot-solr-rails-develo

Roman
21.12.2017
13:40:34
да я много гуглил :(

Alexander
21.12.2017
13:41:02

Roman
21.12.2017
13:59:50

Roman
21.12.2017
14:00:11
ему не нравилось имя хоста, поменял на redis и все норм
такая же фигня и с постгресом была, чего только не делал, оказалось, что надо было имя хоста поменять на postgres

Alexander
21.12.2017
14:15:22
как тестить приватные методы(send)? и надо ли?

Anton
21.12.2017
14:16:41
если расписывать подробнее

Roman
21.12.2017
14:19:20

Vasiliy
21.12.2017
14:19:51
ты пишешь тесты —>
они вызываешь публичные методы —>
они вызывают приватные —>
если паблик сломан то сломан и приват

Google

Roman
21.12.2017
14:20:11

Roman
21.12.2017
14:20:29
send, не надо
ну я бы не был столь категоричен на счет "не надо". я обычно разделяю тесты, чтоб было проще
публичный метод покрыт 1-2 кейсами

Vasiliy
21.12.2017
14:20:46
можешь ковереджем покрыть чтобы видеть что код вызывался

Roman
21.12.2017
14:20:48
а приватные тестирую на все edge cases

Anton
21.12.2017
14:20:56
ты в приватные методы пихаешь либо:
1. отдельную бизнес логику
2. мелкие штуки, аля 1 строчники для поиска чего-то
поэтому:
1. это надо выностить в отдельные сервисы, тестировать их отдельно, а потом просто инжектить это дело в основной сервис и тестировать, что зависимость вызывается
2. тест публичного метода будет вызывать приватный метод, который просто что-то сделает как черный ящик

Roman
21.12.2017
14:21:37
> тестировать их отдельно, а потом просто инжектить это дело в основной сервис и тестировать, что зависимость вызывается
ну а если не выносить - то выходит как раз как я сказал

Roman
21.12.2017
14:21:50
а недостаточно просто экшены тестами покрывать? по сути в них вся логика вызывается

Vasiliy
21.12.2017
14:22:05
за send разве по рукам не хуярят?

Roman
21.12.2017
14:22:12
схуяли?

Anton
21.12.2017
14:22:27

Vasiliy
21.12.2017
14:22:28
потому что есть public_send

Roman
21.12.2017
14:22:43

Anton
21.12.2017
14:22:57

Roman
21.12.2017
14:23:18
вот допустим есть у тебя какая-то хрень, ради которой отдельный сервис городить - реально нет смысла

Anton
21.12.2017
14:23:54

Vasiliy
21.12.2017
14:24:13
тут ещё такой момент что даже в либах пишут что - мы не гарантируем работу приватных методов, не надо их юзать

Roman
21.12.2017
14:24:27
а, ты про send

Google

Anton
21.12.2017
14:24:41

Roman
21.12.2017
14:24:43
ну короче это нормальный инструмент языка

Anton
21.12.2017
14:24:53
нет прямо 100 кейса, который всегда надо использовать

Roman
21.12.2017
14:25:00
зависит от того, что ты делаешь
вот у меня совсем недавно был метод который превращает строки типа "1.1" или "v1.1" в "V1_1". это был приватный метод, на который я набросал 5-6 кейсов

Anton
21.12.2017
14:25:29
ты его в одном месте юзаешь?

Roman
21.12.2017
14:25:33
да
выносить его - слишком много шума, тестить его поведение в более высокоуровневом методе - много шума для тестов высокоуровневого метода

Anton
21.12.2017
14:26:17
у меня для таких кейсов есть transproc

Roman
21.12.2017
14:26:24
шойта?

Anton
21.12.2017
14:26:25
который изолированно можно заинклюдить
и изолированно протестировать
https://github.com/solnic/transproc/
либа для трансформации данных

Roman
21.12.2017
14:26:53
аа прикольно
функциональщина

Anton
21.12.2017
14:27:01
ну
не совсем
просто штука для трансформации данных

Roman
21.12.2017
14:27:21
Transform Ruby objects in functional style =)
ну я понял, хороший вариант да

Google

Anton
21.12.2017
14:27:59
ну и тогда у тебя логика трансформации данных будет в одном месте
и все довольны
ну
минусы тоже есть

Roman
21.12.2017
14:28:25
ну для того случая я бы все равно такое не юзал. слишком много чести =)

Anton
21.12.2017
14:28:37
например, надо это вызывать примерно так
f(:func_name).call(something)

Roman
21.12.2017
14:28:47
смысл в том, что иногда можно затестить и приватные методы

Anton
21.12.2017
14:30:24
ты так то можешь сделать все что угодно, другой вопрос, будет ли это решение поддерживаемым в будущем или нет

Roman
21.12.2017
14:30:46
будет элементарно
у меня будет на это отдельный describe в тестах
и если я решу что-то вынести отдельно - я как раз этот describe и унесу
преждевременная оптимизация в виде миллиона классов-сервисов - тоже зло

Vasiliy
21.12.2017
14:32:51
так то можно и тесты для либ писать(на всякий случай)

Roman
21.12.2017
14:33:14
это другое

Alexander
21.12.2017
15:44:41
Key is already in use - почему мне гитхаб такое пишет, когда я пытаюсь ссш ключ добавить? я его использовал только в гитлабе, но не в гитхабе

Dmitriy
21.12.2017
15:46:20
заговор гитлаба и гитхаба