Последний визит: 31 октября 2026 18:43
Struct можно создать без части полей, они станут nil, а Data требует все. У Struct есть сеттеры, и он ведёт себя почти как массив: `to_a`, `each`, дос...
Data, раз параметры после создания не меняются. Значения по умолчанию и проверки удобно делать в своём `initialize`, а `super` без аргументов передаст...
Сижу на механике лет шесть, на тихих тактильных переключателях. Для кода разница не в скорости, а в усталости: к вечеру руки устают меньше, особенно е...
У faraday есть middleware для ретраев, но ради одного вызова раз в пять минут я бы оставил свои двадцать строк
Для одной команды OptionParser хватает с головой, и он в стандартной библиотеке, ноль зависимостей. Thor нужен, когда появляются подкоманды: `slowlog ...
`&:amount` превращает символ в блок, то есть это короткая запись `{ |r| r.amount }`. `a ||= b` значит «если в `a` nil или false, присвой `b`», так...
puts_hello, на пять полей `fetch` честно хватает, я с него и начинал. Схема окупается, когда полей двадцать, есть вложенность и хочется показать польз...
Можно и в одну строку: `rows.uniq { |r| r.values_at("client_id", "event_date") }`. Внутри тоже хэш, а читается проще
Держит скорость написания и то, что такие утилиты обычно живут там, где Ruby уже есть: на машинах разработчиков и в CI проектов на Rails. Генератор от...
Ещё совет: systemd-юнит с `Restart=always`, чтобы бот сам поднимался после перезагрузки VPS. Хостеры иногда перезагружают ночью без предупреждения
Если хочется как в C#, есть dry-monads, там `Success` и `Failure` из коробки: [code=ruby] require "dry/monads" class RegisterUser include Dry::Mona...
`wday` считает от воскресенья: 0 это воскресенье, 1 понедельник. А массив у тебя с понедельника, отсюда сдвиг на день, и в пятницу ты попадаешь в "sun...