Ruby Digest #89. Оновлення Ruby 3.3.9, JRuby 10.0, Structured Events, mini_i18n, RuboCop 1.79 і RailsConf
Привіт! Цього місяця в Ruby-світі відбулося чимало цікавого: стабільний реліз Ruby 3.3.9, нова версія JRuby 10.0.1.0, зручні новинки у RuboCop та Importmap Rails, гем mini_i18n для простішого перекладу, Structured Event Reporting System для Rails, а також особисті враження з RailsConf 2025. Додатково — гіди, інструменти й міркування для натхнення й продуктивності.
Новини
🔸 Ruby 3.3.9 Released — оновлення з виправленнями помилок у Ripper, IRB, RBS і TypeProf, а також оновленнями безпеки та стабільності.
🔸 June 2025 RubyGems Updates — оновлення з підтримкою експериментального режиму Bundler 4, підготовкою до релізів Bundler 2.7.0 і RubyGems 3.7.0, покращенням роботи з платформами для бінарних гемів.
🔸 3.7.1 Released — оновлення з виправленням регресій у RVM, покращенням обробки платформ, оновленням документації та автоматичним включенням Bundler 2.7.1.
🔸 RubyGems.org Policies Now Live — набули чинності нові правила для gem-ів: прозорість щодо спонсорства, політики безпеки, передачі доступу тощо. Обов’язкові для всіх нових і оновлених gems.
🔸 JRuby 10.0.1.0 Released — вийшла версія JRuby 10.0.1.0 — покращено сумісність із Ruby 3.2, оновлено бібліотеки та виправлено низку помилок.
Корисне
🔸 markets / mini_i18n — MiniI18n отримав оновлення, що спрощує конфігурацію шляхів до файлів перекладів та додає підтримку об’єднання кількох YAML-файлів.
🔸 crmne / ruby_llm — додано підтримку Ollama, покращено обробку помилок та введено новий синтаксис для #ask-запитів.
🔸 rubygems / rubygems — RubyGems тепер автоматично очищає кеш для dev-версій gem-ів під час встановлення або оновлення.
🔸 rubocop / rubocop — нові правила, покращена автокорекція та підтримка різних версій Ruby, зокрема вдосконалено правила для оголошення класів і модулів.
🔸 rails / thor — додано підтримку Ruby 3.3+, оновлено поведінку аргументів та документацію.
🔸 halostatue / color — оновлення класичного gem-а для роботи з кольорами в Ruby (RGB, HSL, HTML), тепер має сучасні
rails / importmap-rails — оновлено логіку preloading, сумісність з Rails 7.2 та покращена інтеграція з Hotwire.
🔸 AlchemyCMS / alchemy_cms — вийшли оновлення з покращеною підтримкою Rails 7.1+, оптимізацією коду та виправленнями помилок.
🔸 red-candle Native LLMs for Ruby — Ruby‑gem для запуску великих мовних моделей (Llama, Mistral, Gemma) прямо в Ruby‑процесі через Rust, без Python або зовнішніх сервісів.
🔸 Rails now allows associations to be marked as deprecated using deprecated: true — додано нову можливість з позначенням асоціацій як застарілих — з автоматичним логуванням використання.
Цікаве
🔸 RailsConf 2025 Recap — автор ділиться головними враженнями з RailsConf 2025: новини, ідеї та цікаві теми, що звучали зі сцени та в кулуарах.
🔸 Rails On-Premise... At RailsConf! — огляд доповіді про плюси та мінуси локального хостингу Rails-додатків (on-premise) та як це впливає на команди, які цінують контроль і передбачуваність.
🔸 Announcing Passive Queue: The Rails Background Job System That Transcends Processing — новий експериментальний підхід до обробки фонових задач у стилі «черга без виконання», що провокує дискусію: а чи завжди нам потрібен worker?
🔸 How 10 years of RailsConfs can inform the next 10 years of your career — Кевін Дж. Мерфі ділиться своїм досвідом участі в RailsConf протягом десяти років — про зміни в спільноті, тенденції та особисті враження.
Статті й туторіали
🔸 The
🔸 Bundler v2.7: last release before Bundler 4 — новий реліз з покращеною продуктивністю, підтримкою останніх версій Ruby, виправленнями конфігурацій і новою командою для розгортання залежностей.
🔸 Sitemaps: A Quick SEO Win for New Websites — сучасний підхід до генерації sitemap-файлів у Rails‑проєктах, з підтримкою масштабованості та інтеграцією з базою даних.
🔸 Rails (might be) Getting a Structured Event Reporting System (and It’s Pretty Cool) — покроковий гайд зі створення структурованої системи звітів про події в Rails — для кращої прозорості, масштабованості та підтримки.
🔸 Brut: A New Web Framework for Ruby — радикально новий Ruby вебфреймворк, без контролерів чи ресурсів: сторінки, форми та одноточкові хендлери.
🔸 Build a blog in 15ish Minutes with BrutRB — прискорений туторіал, який показує, як за 15 хвилин створити робочий блог на основі фреймворка Brut, із прикладами та поясненнями.
🔸 Rails Designers: private community for Rails UI Engineers — анонс нового проєкту від RailsDesigner — платформи для дизайнерів, які працюють з Rails, шаблонами, компонентами та корисними ресурсами.
🔸 Adding an MCP server to a Rails app — команда Avo презентує серверну реалізацію Model Context Protocol (MCP) для Rails, яка дозволяє створювати власні інструменти для LLM прямо з вашої Rails-адмінки.
🔸 Solving Docker Compatibility Issues with Kamal and Ruby 2.2.2 — як Kamal допомагає розв’язати проблеми сумісності між Docker і Ruby. У блозі показано, як уникнути помилок, пов’язаних з різними версіями glibc, і забезпечити стабільне розгортання.
🔸 Hash Transformations in Ruby: index_by vs index_with — пояснення ключових відмінностей між index_by і index_with у Ruby, з практичними прикладами для кращого розуміння та вибору правильного методу.
🔸 AI Coding Agents Are Removing Programming Language Barriers — AI-агенти змінюють правила гри — вони дедалі частіше абстрагують вибір мови програмування, фокусуючи розробку на завданні, а не на синтаксисі.
🔸 Rails Solid Queue for Background Jobs — стаття пояснює, як розгорнути та налаштувати Solid Queue — новий job backend для Rails — у локальному середовищі, з корисними командами для моніторингу.
🔸 Advanced JIT compilers for Ruby: TruffleRuby and JRuby — стаття пояснює принципи роботи сучасних JIT-компіляторів у TruffleRuby і JRuby, порівнює їх ефективність та вплив на продуктивність Ruby-коду.
🔸 How to customize Rails I18n key suffixes like _md for Markdown — автор показує, як використовувати кастомні суфікси (наприклад, .md) для локалізаційних ключів у Rails, щоб забезпечити кращу організацію контенту, зокрема Markdown.
🔸 Fantastic Bugs and Where To Find Them — огляд підходів до пошуку складних і нестандартних багів у Ruby-проєктах: автор ділиться інструментами, прикладами та практичними порадами для відлагодження.
🔸 Hanami and the elephant in the room — блог‑запис про Rails, спонсорську кампанію та місію зробити Ruby-екосистему більш різноманітною та привабливою завдяки Hanami, dry‑rb і ROM.
🔸 Breaking the Singleton: How to Reload Ruby Singleton Instance — стаття показує, як перезавантажити інстанс класу Singleton у Ruby — з прикладами, поясненнями та потенційними кейсами використання.
🔸 Understanding Ruby’s .. Range Operator in ActiveRecord Queries — пояснення, як Ruby-оператор «..» використовується у запитах ActiveRecord — з прикладами, нюансами та порадами щодо безпечного використання.
🔸 Hotwire components that refresh themselves — інструкція про те, як створити компоненти, що оновлюють себе самостійно за допомогою Hotwire — без зайвого JavaScript.
🔸 Polymorphic URLs with direct Router Helper — стаття демонструє, як використовувати direct маршрути в Rails для створення чистих і зручних поліморфних URL-ів, без зайвої магії та з кращою читабельністю коду.
🔸 Hexatetrahedral Rails — роздуми про архітектурні підходи у великих Rails-застосунках: коли доменні шари починають заважати, а не допомагати. Влучно, з гумором і практичними прикладами.
🔸 Stop memoizing Hash lookups in Ruby — Нітін Бекал ділиться корисною технікою мемоізації в Ruby за допомогою хешів, яка дозволяє уникати зайвих обчислень і покращити продуктивність.
🔸 Add a multi-step form/wizard to your Rails app — покрокове створення форм у Rails з використанням Turbo та Stimulus — без зайвої магії та з максимальною гнучкістю.
🔸 Git Rebase Exec — коротке пояснення, як використовувати git rebase —exec для запуску тестів або форматування під час кожного кроку ребейзу.
🔸 Smarter Use of Stimulus’ Action Parameters — Rails Designer показує підхід до створення параметрів дій у контролерах, що спрощує структуру коду й полегшує валідацію.
Відео
Девід Гейнмейєр Ганссон обговорює майбутнє програмування, Ruby on Rails, продуктивність, AI та продуманості дизайну — загалом глибока розмова про стандартні ідеї в Ruby‑світі.
RailsConf 2025 (Philadelphia) — повний архів доповідей з RailsConf: новинки фреймворку, практики продуктивної розробки та кращий досвід для Rails‑розробників.
Rails New by typecraft_dev — серія для Rails‑початківців (починаючи з базового застосунку до продуманого продукту) — ідеальна для тих, хто хоче стартувати з Rails.
Подкасти
On Rails
Jean Boussier & IO-Bound Misconceptions
Nadia Odunayo & Scaling Rails for Millions of Users as a Solo Dev
Drifting Ruby
Dependent Select
Password Managers
Database Constraints
Worker Limits
Remote Ruby
Conferences, Hotwire Native updates, and a surprise guest!
Soham Parekh, Turbo Frames and AI Antics
Ruby Podcast Panel at RailsConf 2025
RailsConf 2025 Recap
Для гарного настрою




3 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівДуже дякую за цей дайджест.
На тому тижні дійшли руки подивитися
. Мені то цікаво, бо десь-щось вже знаю, але всеодно є початківцем. Взагалі плюс, що на офіційному каналі RoR почали появлятися відео такого плану і те, що анонсуються наступні. Але переглядаючи цей туторіал склалось враження, що на моменті з додаванням Tailwind і до нього добралось «спочатку малюємо один овал, потім трохи більший, а далі за тим самим принципом отримуємо детально промальовану сову». І явно це ж не проблема тривалості відео, бо на CRUD операції воно було півгодинне, а тут трохи більше 5 хвилин. Але не це основне. Там є посилання на репозиторій з проектом де гілки відповідно до кожного відео. І ще в 5 епізоді typecraft в відео опустив внести деякі зміни, що так і залишились до кінця проекту та ці тепер вже баги не були в ньому пофіксені! Він забув додати параметр :active у контролер проектів — при створенні записується дефолтне значення з налаштувань БД, але його не вийде через форму відредагувати. А в модель Todo можна зберегти завдання з порожнім ім’ям, бо тут не додав такої ж валідації, як в проектах. Я про це написала коментар під відео, на нього так і не було ніякої реакції, тому форкнула репозиторій і зробила пул реквест з фіксами. Навряд-чи хтось щось поправить, але погано, що отакі навчальні відео для початківців не мають, хоча б поза кадром, самих базових тестів.
Світлано, дякуємо за уважний і змістовний коментар.
Цінуємо вашу залученість і увагу до деталей — фідбек такого рівня справді важливий, особливо коли йдеться про навчальні матеріали для початківців, це завжди корисно для спільноти.