@proRuby

Страница 253 из 1594
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
Класс который хранит глобальное состояние - это синглтон, и это антипаттерн.
почему сингелтон - антипатерн? когда сингелтон и фактори это чуть ли не 2 первых патерна с которых все начинают знакомиться с шаблонами проектирования.

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

puts в конце добавь
щас добалвю

оно работает

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 он как я понимаю работает с значенями хеша

hash.select { |k, v| k.to_s.start_with?('from_') }
гениально. спасибо

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
hash.select { |k, v| k.to_s.start_with?('from_') }
1. Лучше не называть переменные 1 буквой 2. Неиспользуемые переменные лучше называть с `_`

|key, _val|

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

Dima
30.10.2016
08:33:58
reject != reject!
это что значит?

а понял

функция reject != функции reject!

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
|key, _val|
почему _val, а не _value?

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
почему _val, а не _value?
value лучше, но val для меня минимально допустимое

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
просто своим размером оно ухудшает читабельность.
Не соглашусь. Anyway, это моё имхо, я не насаждаю, а просто аргументирую

Admin
ERROR: S client not available

Alexander
30.10.2016
08:47:16
а почему key полностью, а val - обрезано? Несправедливость
Действительно несправедливо, что в англ языке слова разной длины

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

Alex
30.10.2016
08:48:24
несправедливо

тебя подкололи что следуя твоей логике надо полностью расписывать слова

ojab
30.10.2016
08:49:58
value лучше, но val для меня минимально допустимое
А где ваш стайл-гайд можно почитать?

Alex
30.10.2016
08:50:37
??

Alexander
30.10.2016
08:52:24
тебя подкололи что следуя твоей логике надо полностью расписывать слова
Я уже выше написал, что да, лучше полностью, но чтобы совсем не рвать ваши пуканы — написал минимально допустимый для меня вариант

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

чтобы сделать код длиннее?

Google
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| в конфигурации по умолчанию.

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

Alexander
30.10.2016
08:58:35
это не стайлгайд, к тому же ни rubocop, ни reek не ругаются на |k, v| в конфигурации по умолчанию.
Уверен? Я не сам придумал, поверь) сейчас не у компа, потом могу проверить

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
+4 символа в первом блоке, +4 символа во втором блоке, и вот внезапно однострочник становится хуже читаемым.
Да перенеси его на вторую строку — это только улучшит читаемость, не городи анаконду

Alexander
30.10.2016
09:00:01
Alex
30.10.2016
09:00:51
В чем читаемость то?

ты k, v не понимаешь что такое?

k, v читабельнее потому что короче.

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