Short Ruby News - Edition #87

The one with a lot of solutions and ideas for Turbo and Hotwire.

You can jump directly to a section:

πŸ‘‰ All about Code and Ruby: πŸ’» Code, πŸ“Code Design,πŸ’‘Around, ❀️ Why Choose Ruby

🧰 Gems, Libraries, and Updates: πŸ†• New, 🧰 Updates and πŸ‘€ Keep an eye on 

🀝 Related (but not Ruby-specific)

[Promo ⬇] RailsConf

RailsConf 2024 is the world's longest-running gathering of Rails developers, brought together to further discussion and learning about building, managing, and testing Rails apps. This year’s line up of speakers have been selected to give attendees real-life, practical, insights into building and running Rails apps and teams.Don’t miss this chance to learn, network, and explore Detroit with us this year! Enjoy iconic museums and street art, a rich food and music scene, and socializing with fellow Rails developers in the one and only Motor City.

πŸ“… Events

πŸ“… Xavier Noria shared they will be at HackDay at RailsConf:

πŸ“… Ruby Kaigi announced the addition of more social Events to the list.

πŸ“… Landon Gray invited Ruby Meetup or Local Ruby Conference to a conversation about how Ruby Central can help:

πŸ‘‰ All about Code and Ruby

πŸ‘‰Jean Boussier shared that Shopify is running their monolith on Ruby 3.4-dev in production:

He also added:

πŸ‘‰ David Heinemeier Hansson shared about the future of Rails:

πŸ‘‰ Stephen Margheim shared about SQLite:

And a bit more about other tools used at Basecamp:

πŸ’» Code Samples

πŸ‘‰ Greg Molnar shared about transaction callbacks in Active Record:

πŸ‘‰ Ruby Cademy shared about using - modifier to remove leading whitespaces:

πŸ‘‰ Joel Drapper shared a code sample showing how to implement a badge with Phlex:

Here are alternative implementations of the same badge with Rails helpers:

πŸ‘‰ Matt Swanson shared Turbo streams tips and tricks:

πŸ‘‰ Colleen Schnettler shared about broadcasting turbo stream and removing a SVG when the next broadcast starts:

πŸ‘‰Nithin Bekal shared on how to avoid interpolation in Ruby from Ruby Heredocs | Alchemists

πŸ‘‰ Nick Schwaderer shared on writing an external link within turbo_frame_tag

πŸ‘‰ Ruby Cademy shared about enum validation introduced in Rails 7.1

πŸ‘‰ Mika Henriksson shared about comparison validations in models

πŸ‘‰ Ruby On Rails shared on how to specify a parent class for the job using --parent option of job generator

πŸ‘‰ Ruby Cademy shared about dependent:destroy_async option to delete the associated collection in a background job

πŸ‘‰ Greg Molnar shared about Rails 8 built-in rate limiter:

πŸ‘‰ Mika Henriksson shared a code sample showing a way to parse Date:

πŸ‘‰ Matt Swanson asked about using metaprogramming instead of a case statement for a code sample:

Here are some replies:

πŸ‘‰ Josef Strzibny shared about adding a service in Docker compose to access the main Rails app:

πŸ‘‰ Colleen Schnettler shared 3 options for implementing a turbo pattern to update other elements from the page:

Here are some replies:

πŸ‘‰ Jack Culpan shared a code sample to connect to Cloudflare workers:

πŸ‘‰ Justin Searls shared a gist about recursive validation: Is this overkill? Is there some other nice way to do this?

πŸ‘‰ Marc KΓΆhlbrugge shared a code sample about importing production DB to localhost:

πŸ“ Thinking about Code Design

πŸ‘‰ Nate Berkopec shared their workflow for micro-optimizing by using rubyatscale/singed: Get a flamegraph anywhere in your code base

πŸ‘‰ Joel Drapper shared about building views in Ruby instead of HTML:

Here are some replies:

πŸ‘‰ Joel Drapper shared about how to familiarize with a new Rails codebase:

πŸ‘‰ Mohit Sindhwani shared about running logs along with ORM:

πŸ‘‰ Greg Molnar shared an advice about having a strong password:

πŸ‘‰ Kevin Newton shared about using Prism to parse Ruby code:

πŸ‘‰ Michael Chaney shared about straightforward code:

πŸ‘‰ Mika Henriksson shared about service objects:

Here are some replies:

πŸ‘‰ Dave Thomas shared about Rails using encrypted credentials:

πŸ‘‰ Mika Henriksson shared about turbo frames and tab-like form flows:

πŸ‘‰ Joel Drapper shared a benchmark about view layer in Ruby:

πŸ‘‰ Jesse Van Der Pluijm shared about creating a gem and asked about how to load dependencies:

Here is a reply from Xavier Noria:

and here is a reply from Samuel Williams

πŸ‘‰ Jason Swett shared about Rails conventions:

πŸ’‘ Around code (news, findings, books and more - all about Ruby)

πŸ‘‰ Jose Farias shared about his method to look at fields in an ActiveRecord

Joel Moss shared VSCode extensions that could be used to achieve the same:

πŸ‘‰ Justin Collins shared on security vulnerabilities in ruby on rails:

πŸ‘‰ Ted Nyman shared about Github infrastructure:

❀️ Why Choose Ruby

❀️ Nate Hopkins shared about Ruby being used in AI:

❀️  Mehdi Farsi shared about Rails helps with shipping fast:

❀️ Andrew Hodson shared about Rails 8 security:

❀️ Ama Ni shared about Rails having so many sensible features:

🧰 Gems, Libraries, Tools and Updates

πŸ†• New Gems and Repos

πŸ†• BenjamΓ­n Silva H. announced the release of a new gem sidekiq_job_controller.

🧰 Updates

🧰 Avo announced a new version (3.6) of Avo. Watch the release video.

🧰 Stephen Margheim announced a new version of Update to Litestream gem | Fractaled Mind

🧰 Bozhidar Batsov announced a new version Release of RuboCop 1.63.2 ·

🧰 Mari Imaizumi announced a new version of Release v0.5.2 · ruby/reline

πŸ‘€ Keep an eye on

πŸ‘€ You can check the subjects that will be discussed at Ruby DevMeeting at RubyKaigi 2024

πŸ‘€ Jean Boussier proposed a new feature to Ruby about Emit a performance warning when specially optimized core methods are redefined

This was accepted by Yukihiro Matsumoto.

🀝 Related (but not Ruby-specific)

🀝 Irina Nazarova shared about open source:

🀝 David Heinemeier Hansson shared about choosing Ruby:

🀝 Stefan Judis published a new edition about ordered list start property:

🀝 Ben Orenstein shared about pairing:

 πŸ€ Joost De Valk shared about popup modals:

🀝 Pascal LalibertΓ© shared 

🀝 Jason Swett shared 

🀝 Amree Zaid shared about sorting on Redis:

More content: πŸ“š πŸ—ž 🎧 πŸŽ₯ ✍🏾

πŸ—ž Newsletters

πŸ—ž Ruby Weekly published a new edition about Making SQLite faster in Rails apps

πŸ—ž Ruby LibHunt published a new edition about Awesome Ruby Newsletter - Issue 413, Apr 18, 2024

πŸ—ž Hotwire Weekly published a new edition about Week 16 - Turbo Overview Guide, Turbo Native pull-to-refresh, and more!

πŸ—ž Ruby Central published a new edition about April 2024 Newsletter

πŸ—ž Sajjad Umar published a new edition about Ruby on Rails - April 2024

🎧 Podcasts

🎧 Ruby Rogues published a new podcast about Adrian Marin - Avo - Rails content management system

πŸ“½οΈ πŸŽ₯ Videos

Screencasts

πŸŽ₯Yaroslav Shmarov published a new video SupeRails #165 Manage active sessions. Security feature on enhancing security of your application.

πŸŽ₯ GoRails published a new video on One Time Payments With Pay And Stripe (Example)

πŸŽ₯ Aaron Patterson published a new video about Pairin' with Aaron: Hacking on YJIT

πŸŽ₯ Dean De Hart published a new video about Realtime Docker API Gem with Xterm Logs for Rails

πŸŽ₯ Drifting Ruby published a new video about Episode 453 - Exporting ICS Files | Drifting Ruby

✍🏾 Articles

What’s new πŸ†•

Obie Fernandez published a new article about The Future of Ruby and Rails in the Age of AI β†’ β€œThe good news I want to share is: not only will Ruby and Rails survive this AI revolution, Rubyists will pioneer the most revolutionary application development approaches of the coming era”

Vitalii Elenhaupt published an article about Avo custom fields

Stephen Margheim published an article about SQLite on Rails: The how and why of optimal performance and about Update to Litestream gem

Kevin Newton published a new article about Prism in 2024

Remi Mercier published an article about Delegated types in Rails. β€œDelegated types in Rails are a modelization pattern introduced to handle situations where a single model class needs to represent multiple distinct types of objects with their own attributes and behaviors”

Annastacia Kioko published an article about Integrating Africa’s Talking (SMS) in your Rails Application.

Matheus Richard published an article about Faster Tests With Capybara and Request Specs. β€œSystem specs are cool, but can be slow and flaky. Request specs can be good enough if you add the right seasoning to them.”

Greg Molnar published an article about Active Record transaction callbacks.

Brooke Kuhlmann published a new article about Ruby Heredocs.

Andrei Maxim published a new article on Instance Variable Access in Ruby

Greg Molnar published a new article The tale of an XSS in Phlex

Kingsley Chijioke published an article on Handling Exceptions in Grape for Ruby β€œGrape is a popular Ruby framework for building RESTful APIs”

Noel Rappin published a new article about Conway's Law

Sally Hall published an article about Enum validations and database constraints in Rails 7.1

How-TOs πŸ“

Kevin Murphy published a new article about Making a (Sidekiq) Batch Recipe

Justin Searls published an article on how to Fix your Rails Fixtures with this one neat trick

RailsDesigner published an article about ViewComponent over Turbo Stream Broadcasts

Mohit Sindhwani published an article about JRuby 9.4 on Windows: Day 0 - install and Hello World

Elvinas Predkelis published an article about Ruby on Rails: Native route constraint for authentication

Olly Headey published a new article about Rails, Assets, ActiveStorage and a Cloudfront CDN

Yaroslav Shmarov published a new article about Manage active sessions in Rails 2024

Vincent Ritter published a new article about Sanitising content before render

Dom Christie published an article about Turbo Refreshes, Frames, and Streams

Mohit Sindhwani published an article about Fix: Rails main Rubocop Error on Windows

Povilas Jurčys published an article about FactoryBot: the secret weapon called @overrides

Toby Osbourn published an article about Forcing a Rails database column to be not null

Deep Dives πŸ”

Akshay Khot published an article about From a Lorry Driver to Ruby on Rails Developer at 38

Reply

or to participate.