
Alexander
29.10.2016
19:01:47

Alex
29.10.2016
19:02:12
Ну значит ArgumentError при загрузке

Alexander
29.10.2016
19:03:18
Нет, проверяется Б, если нет его -- заглушка. Можно сократить, это просто мой кейс с почтой конкретный

Alex
29.10.2016
19:03:49
Ясно. Ну это еще один подход.

Google

Alex
29.10.2016
19:04:02
Я обычно в рельсовом приложении просто в код забиваю куда стучится приложение.
Ибо места где это реально должно быть конфигурируемо - редки.

Dima
29.10.2016
19:55:07

Alex
29.10.2016
19:56:05
http://stackoverflow.com/questions/12755539/why-is-singleton-considered-an-anti-pattern
Фабрика в том числе может создавать и инстансы класса

Dima
29.10.2016
20:12:32
Захотелось эксперементов. создал в корне руби прожекта файл tst.rb думаю сейчас с pry буду экспеременитрвать на хешах. А оно не летит. https://gist.github.com/lbvf50mobile/8b743a5b1b7a01bd479d6086b6391995

ojab
30.10.2016
08:02:27
puts в конце добавь

Dima
30.10.2016
08:02:40
вот тут вот все летало: https://gist.github.com/lbvf50mobile/24808c255e95549bd3d56ffac80caff7
оно работает

Google

Dima
30.10.2016
08:05:20
короче пока запомню просто чтоб pry срабатывает когда после него есть какие-то вызовы функций
там дальше в тонкости в ойдем

Alex
30.10.2016
08:20:44
Потому что binding.pry останавливается на следующей инструкции после своего вызова
а следующая инструкция находится за пределами текущего scope
Гденибудь в kernel

Dima
30.10.2016
08:24:40
Продолжаю борьбу с простынями за ruby way. Зача из большого массива параметров получить саб массив ключи которого начинаются с from. https://gist.github.com/lbvf50mobile/7ecf274d318fea1b80c700ccd3c55606/5e30019f29b396a9dcc7ff17e9fb3323351e608b#file-get_from-rb-L29
как это делается коротко?

ojab
30.10.2016
08:26:47
hash.select { |k, v| k.to_s.start_with?('from_') }

Dima
30.10.2016
08:26:48
Мне вчера дали массу советов, и про select и про map, Алекс предложил решение params.permit(:from, :blah).map(&:strip) . Загвоздка в том что надо же выберать по ключам, а вот select он как я понимаю работает с значенями хеша

Alex
30.10.2016
08:30:36
ты из params должен выбрать все params которые ты разрешаешь
явным образом сделать белый список

Dima
30.10.2016
08:31:01

Alex
30.10.2016
08:31:01
и уже с ним работать.
Так ты фильтруешь через select а не permit
в permit ты жестко задаешь список ключей которы еразрешены и остальные отсекаешь

Dima
30.10.2016
08:31:56
смотрите select изменяет текущий массив, а как сделать так чтоб массив не менялся, а из него копировалось

Alex
30.10.2016
08:32:28
select не изменяет текущий массив а создает новй
то что изменяет текущий объект обычно заканчивается на !

Google

Dima
30.10.2016
08:32:54
ага точно, спасибо

Alex
30.10.2016
08:32:58
например reject!
reject != reject!

Alexander
30.10.2016
08:33:06
|key, _val|

Alex
30.10.2016
08:33:37
лучше не делать длинные название в том proc'е где и так понятно что происходит

Dima
30.10.2016
08:33:58
а понял
функция reject != функции reject!

Alexander
30.10.2016
08:34:34

Alex
30.10.2016
08:34:59
Почему?
а зачем делать однострочник на полстраницы?
если и так очевидно что там делается

Alex
30.10.2016
08:35:15
k, v это вполне очевидные названия.

Alexander
30.10.2016
08:40:30

ojab
30.10.2016
08:41:24

Alexander
30.10.2016
08:42:11
k, v это вполне очевидные названия.
Вообще — да. Но есть такие вещи как приучение и дисциплина, а ещё эстетика, ну и конвенция в конце концов. Очевидность не теряем, а только увеличиваем

Alex
30.10.2016
08:42:28
k, v это нормальная практика
именно k, v
А пихать принцип там где он мешает это плохая идея.

Alexander
30.10.2016
08:43:30

Google

I
30.10.2016
08:43:36
k,v желательно для однострочных использовать, для многострочных более понятные и смысом нагруженные

Alexander
30.10.2016
08:43:42

Alex
30.10.2016
08:44:33
Читабельность k, v против key, value?
серьезно?
наоборот k,v повышают читабельность если однострочник длинный

Alexander
30.10.2016
08:45:20
1. key val может поместиться в строку (не 10 символов длина же)
2. Методы можно переносить:
hash
.select
.reject

Alex
30.10.2016
08:45:57
key val это ненужная расшифровка в даннм случае
просто своим размером оно ухудшает читабельность.

I
30.10.2016
08:46:21
а почему key полностью, а val - обрезано? Несправедливость

Alexander
30.10.2016
08:46:45

Admin
ERROR: S client not available

Alexander
30.10.2016
08:47:16
Например, так же несправедливо, что переходы и дверные проёмы строят без учёта роста 190+

Alex
30.10.2016
08:48:24
несправедливо
тебя подкололи что следуя твоей логике надо полностью расписывать слова

ojab
30.10.2016
08:49:58

Alex
30.10.2016
08:50:37
??

Alexander
30.10.2016
08:52:24

Alex
30.10.2016
08:52:43
Зачем? в чем смысл расшифровывать очевидную вещь?
чтобы сделать код длиннее?

Google

Alexander
30.10.2016
08:53:13

Alex
30.10.2016
08:53:57
Он теряет в читабельности от этой бесполезной очевидности.
Особенно если у тебя пара таких в цепочке.

Alexander
30.10.2016
08:55:42
Да используйте k+v, пожалуйста, я просто высказал своё мнение на основе опыта, как с Module.configure

Alex
30.10.2016
08:56:02
configure заменить на c тоже норм вполне.

Alexander
30.10.2016
08:56:09

Alex
30.10.2016
08:56:15
К тому же config в блоке configure не так страшен как длинные аргументы в однострочнике.

ojab
30.10.2016
08:57:44
Rubocop + Reek
это не стайлгайд, к тому же ни rubocop, ни reek не ругаются на |k, v| в конфигурации по умолчанию.

Alexander
30.10.2016
08:57:45

Alex
30.10.2016
08:58:35
+4 символа в первом блоке, +4 символа во втором блоке, и вот внезапно однострочник становится хуже читаемым.

Alexander
30.10.2016
08:58:35

Alex
30.10.2016
08:58:46
Причем k, v обозначение понимают все, это нормальная практика.

Alexander
30.10.2016
08:58:49
Как раз reek вроде ругается

Alex
30.10.2016
08:58:50
Так вот, смысл то в чем?
слепое следование правилам хуже чем их отсутствие.

Alexander
30.10.2016
08:59:45

ojab
30.10.2016
08:59:57

Alexander
30.10.2016
09:00:01

Alex
30.10.2016
09:00:51
В чем читаемость то?
ты k, v не понимаешь что такое?
k, v читабельнее потому что короче.