Ruby Digest #88. Нові геми, експерименти з AI, глибокі статті та трохи музики

Вітаємо у новому випуску Ruby Digest!

Цього місяця зібрали все: від оновлень популярних Ruby-гемів і новин з Rails-світу до незвичних експериментів з AI, WebAssembly та інструментами для підвищення продуктивності. А ще — практичні туторіали, цікаві відео, думки від провідних розробників і невеликі, але корисні відкриття з глибини open-source.

Корисне

🔹ixti / sidekiq-throttled — ​​додано підтримку Ruby 3.3, що забезпечує сумісність гема з останніми версіями мови.

🔹 splitwise / super_diff — вийшов реліз v0.8.0, який покращує підтримку ActiveRecord і дозволяє краще порівнювати складні об’єкти у RSpec. Зручно для дебагу розбіжностей у даних.

🔹 drwl / annotaterb — з’явилось оновлення, яке дозволяє гнучко керувати стилем коментарів у моделях, покращуючи читабельність документації прямо в коді.

🔹 fractaledmind / chaotic_job — ChaoticJob адаптовано для роботи з новими версіями Sidekiq та SolidQueue; це допоможе точніше імітувати непередбачувані сценарії при виконанні задач.

🔹 ankane / ruby-polars — бібліотека Ruby-Polars, що забезпечує високу продуктивність для обробки табличних даних, отримала підтримку Arrow версії 46.

🔹 openai / openai-ruby — гем отримав покращення документації та підтримку нових параметрів моделей, включно з останніми оновленнями API.

🔹 rubocop / rubocop — інструмент статичного аналізу коду отримав чергові покращення: нові копи, фікси та оновлена підтримка Ruby 3.5 у свіжих релізах.

🔹 ankane / rover — покращено інтеграцію з Ruby 3.3+, оновлено залежності та виправлено декілька незначних багів. Rover дозволяє працювати з таблицями даних у стилі Pandas, прямо в Ruby.

🔹 pay-rails / pay — гем для керування підписками та платежами в Rails отримав свіжий апдейт з підтримкою Stripe Configuration API та вдосконаленням Braintree-логіки.

🔹 Creating a Simple Embeddable JavaScript Widget (for Your Rails App) — сторінка демонструє, як можна створити базовий JavaScript-віджет для сайту з Rails, який легко вбудовується за допомогою iframe або вставки коду.

🔹 Herb Language Server and Visual Studio Code Extension — представлено Herb Language Server — сервер мов для DSL-фреймворку Herb на Ruby. Проєкт ще в розробці, але вже доступні базові функції.

Цікаве

🔹 Can AI rebuild a Rails page in Next.js? We tried it — у Thoughtbot спробували відтворити сторінку на Rails за допомогою AI в стилі Next.js — цікавий експеримент про обмеження та можливості сучасних LLM.

🔹 Weird Ruby: Anonymous Heredocs — нестандартний погляд на анонімні heredocs у Ruby: як вони працюють, навіщо потрібні та які несподіванки можуть викликати.

🔹 If you’re interested in learning to code... — навчальна платформа, яка допомагає освоїти Ruby on Rails за допомогою практичних прикладів і проєктного підходу. У червні вона отримала оновлення та нову стартову сторінку з інформацією про Summer School 2025.

🔹 Introducing On Rails: A New Podcast from the Rails Foundation — Ruby on Rails запускає офіційний подкаст! У першому випуску — інтерв’ю з David Heinemeier Hansson, обговорення Rails World, Rails 8 і багато іншого.

🔹 Using Claude-Swarm to Upgrade Ruby Projects — практичний експеримент із використанням Claude Swarm для автоматичного оновлення десятків Ruby-гемів. Автор описує, як AI може допомогти в модернізації коду та оновленні залежностей.

🔹 Putting Hanami in the browser via WASM — блог-пост розповідає про запуск Hanami на WebAssembly (WASM). Цей експеримент показує потенціал Ruby у браузері та нові можливості для веброзробки.

🔹 An LLM-based AI Assistant for the FastRuby.io Newsletter — практичні поради щодо використання AI-інструментів (зокрема ChatGPT) для маркетингу Ruby-проєктів: написання контенту, сторінок продажів, маркетингових матеріалів.

🔹 sonic-pi-net / sonic-pi — у свіжій версії Sonic Pi з’явилася підтримка нових синтезаторів, покращене ядро мови та оптимізації продуктивності. Проєкт залишається одним із найбільш творчих застосувань Ruby у сфері освіти та музики.

Статті й туторіали

🔹 Implementing Embedded TypedData Objects — розбір підходу до впровадження вбудованих об’єктів типізованих даних у Rails-застосунках — як зберігати складні структури у звичних моделях.

🔹 Our Production Ruby on Rails Stack — опис архітектури, налаштування та вибору інструментів для запуску стабільного Rails-застосунку в продакшн.

🔹 Prevent logging sensitive information in Rails, and beyond — огляд способів приховати чутливі дані з логів у Rails, зокрема конфігурацію filter_parameters, а також поради для безпечної обробки параметрів.

🔹 Build a minimal decorator with Ruby in 30 minutes — коротке пояснення та приклад реалізації мінімалістичного декоратора в Ruby, який допомагає розділити відповідальність між моделлю та представленням.

🔹 Inside Ruby Debuggers: TracePoint, Instruction Sequence, and CRuby API — детальний розбір внутрішньої роботи Ruby-дебагерів: як працює трасування, зупинки, змінні, і що насправді відбувається у процесі виконання.

🔹 A Deep Dive into Solid Queue for Ruby on Rails — розбір нової системи чергування завдань у Rails — Solid Queue. У статті пояснюється її архітектура, основні особливості, переваги та порівняння з Sidekiq.

🔹 Ruby AI: Interview with Obie Fernandez — Obie Fernandez ділиться своїм баченням ролі Ruby в епоху штучного інтелекту: перспективи, виклики та практичні кейси інтеграції з AI.

🔹 Adding llms.txt to a Rails application — команда Avo презентує ініціативу llms.txt — новий спосіб вказати, чи можна використовувати ваш Rails-застосунок як джерело навчання для моделей штучного інтелекту.

🔹 SOLID vs OOP in Ruby: Are We Just Repackaging the Same Ideas? — автор розмірковує, чи справді принципи SOLID є чимось унікальним для об’єктноорієнтованого програмування в Ruby, чи це просто інший погляд на ті самі концепції.

🔹 Batch mapper in RailsEventStore — how initial idea evolved into experimental feature — еволюція нового підходу до обробки подій у RailsEventStore — від перших ідей до впровадження експериментального Batch Mapper.

🔹 Designing RESTful APIs with Ruby on Rails: Conventions and Practical Implementation — гарний огляд того, як будувати REST API на Rails: від конвенцій до практичного втілення, з прикладами й поясненнями.

🔹 The difference between Rails Plugins, Extensions, Gems, Railties, and Engines — стаття пояснює відмінності між різними способами розширення Rails-застосунків — від плагінів до engine-ів — із прикладами та історичним контекстом.

🔹 How to Inspect the Sequence of Controller Callbacks in Rails — детальний огляд порядку виконання callback-ів у Rails-контролерах із прикладами та поясненнями, як контролювати їхній виклик.

🔹 The History of Ruby on Rails: Code, Convention, and a Little Rebellion — огляд еволюції стилю коду в Rails — від ранніх стандартів до сучасних змін і невеличкого бунту проти «загальноприйнятого».

🔹 Reworking Memory Management in CRuby — у межах конференції International Symposium on Memory Management (ISMM 2025) представлено наукову роботу про вдосконалення керування памʼяттю в Ruby. Документ охоплює низькорівневі механізми та оптимізації, які можуть вплинути на продуктивність Ruby-програм у майбутньому.

🔹 Migrating existing columns to be encrypted with Rails — покроковий гайд із додавання шифрування до наявних колонок у Rails-застосунку без втрати даних.

🔹 Auto-pause Video Player with Stimulus — як зупиняти відео, коли користувач залишає вкладку. Просте рішення на JavaScript, корисне для покращення UX у Rails-застосунках.

🔹 Making Tables Work with Turbo — стаття демонструє практичні поради щодо адаптації HTML-таблиць до роботи з Hotwire/Turbo, зберігаючи UX та інтерактивність без зайвого ускладнення.

Відео

🔹 How to use Enumerable with Ruby Classes — відео показує, як працювати з модулем Enumerable у власних Ruby-класах, з прикладами та поясненнями від Кріса Олівера.

🔹 How to use the new action_text-trix gem — показано, як налаштувати трансляцію оновлень у реальному часі через Turbo Streams, щоб динамічно оновлювати елементи на сторінці без ручного JavaScript.

🔹 How to use Rails Authentication Generator Test Helpers — відео демонструє створення чату на базі Rails із використанням Hotwire — Turbo Streams і Stimulus — для реалізації реального часу без сторонніх бібліотек.

🔹 Adding Turbo Frame Test Helpers — розглянуто, як створити вкладену форму в Rails із використанням Hotwire, Turbo Frames і Stimulus, щоб додавати або видаляти вкладені елементи без перезавантаження сторінки.

Подкасти

Drifting Ruby

🔹 Marksmith

🔹 Kamal 2 in Github Actions

🔹 System Tests in Docker

🔹 Log Bench

🔹 Database Replica

Remote Ruby

🔹 The MMM Episode-Mario Kart, Meta Tags, and One Month Rails

🔹 Unpacking Direct Routes and More

🔹 Adventures with Puny Code and Other Programming Puzzles

RWpod

🔹 08 випуск 13 сезону. Jemalloc, On Rails podcast, Oxlint 1.0, Vite 7, OpalStimulus, Biome v2, Storybook 9 та інше

Для гарного настрою

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
How to use Enumerable with Ruby Classes — відео показує, як крок за кроком розгорнути Ruby on Rails-застосунок у Fly.io,...

Тут помилка в описі відео, Кріс Олівер там розказує про роботу з модулем Enumerable, а не деплоїть на Fly.io.

Підписатись на коментарі