БЕГЕМОТИКОВ МОЖНО! Войти !bnw Сегодня Клубы
Ну вот такая вот история, например. Подключил модный гемчик. Сделал huita.try(:[], :wtf) А по-другому я нынче и не пишу уже — страшно. Для тех, кто современных рубей не видел — это абсолютно то же самое, что и huita[:wtf], но вызванное так, чтобы если вместо huita мне подсунут не хеш, а что-то другое, то в результате всего лишь будет nil, а не падение с эксепшоном. И все равно все ебнулось с undefined method `wtf' и совершенно невменяемым трейсбеком. Потому что huita принадлежит к классу из гемчика, который сделан через поебень под названием virtus. Этот ебаный virtus переопределил метод [] и заменил его на #send, потому что, э-э-э... Ну, чтобы пиздато было, наверное. Часа времени на дебаг как не бывало.
Рекомендовали: @voker57
#5SDRAN / @komar / 1215 дней назад

> virtus Это который уже больше года как DISCONTINUED? Смотри там, от легаси хуй стоять перестанет.
#5SDRAN/OSU / @anonymous / 1215 дней назад
@anonymous Мне поебать, что там написано на гитхубе. По собственной воле я б эту поебень никогда в жизни не подключил бы. Однако: https://github.com/atipugin/telegram-bot-ruby/blob/master/telegram-bot-ruby.gemspec#L21 И этот гем вообще гениальный. Даже после многих лет использования с тысячами пользователей и миллионом сообщений в день он продолжает выдавать новые, не встречающиеся доселе ошибки.
#5SDRAN/T8A / @komar --> #5SDRAN/OSU / 1215 дней назад
Вот это вообще было неожиданно! [x] рубиблядок [x] телеграмопидор [x] некрофил [x] обосрался с типизацией
#5SDRAN/KDK / @l29ah / 1215 дней назад
@l29ah Ну некрофилию точно убрать надо. А так да, обычное говноедское комбо.
#5SDRAN/MNC / @komar --> #5SDRAN/KDK / 1215 дней назад
@l29ah Ну и я тебе, на всякий случай, объясню, в чем прелесть конкретно этого примера. В случае, если все хорошо, huita должна быть хешем, в котором есть элемент с ключем "wtf". Так что мне достаточно сделать huita["wtf"] — и все будет хорошо. Даже если такого элемента нет — ничего не упадет. Но на случай, если волшебная поебень мне вместо хеша выдаст что-то другое, я сделал huita.try("[]", "wtf"). Это совершенно то же самое, но если окажется, что у huita нет метода "[]" (доступ к элементу хеша по ключу) — программа не упадет с ошибкой «нет такого метода», а просто выдаст nil. Но не тут-то было. Оказывается, что huita — это не хеш, а неведомая поебень, которая маскируется под хеш. И модный программист вместо huita.wtf может писать huita["wtf"]. Зачем это нужно — моим мозгом понять невозможно, но я старый пердун, что я могу понимать. Так вот, чтобы было модно, внутри этой поебени реализуется метод #[], который просто берет аргумент и вызывает у самого себя метод с этим именем. И падает. Потому что нет метода с таким именем. То есть что получается: я заюзал специальные костыли, которые помогают даже в экстремальной ситуации не обосраться с типизацией, но модные программисты какими-то нечеловеческими усилиями придумали способ, как и эту проблему обойти. Это гениально.
#5SDRAN/CB6 / @komar --> #5SDRAN/KDK / 1215 дней назад
@komar Да я всё сначала понел. Лучше расскажи, нахуя им переопределять скобки, если вдруг поймёшь.
#5SDRAN/85J / @l29ah --> #5SDRAN/CB6 / 1215 дней назад
@l29ah Я бы с удовольствием тебе рассказал. Но я не хочу этого знать.
#5SDRAN/12N / @komar --> #5SDRAN/85J / 1215 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.