- Short Ruby Newsletter
- Posts
- Short Ruby Newsletter - edition 118
Short Ruby Newsletter - edition 118
The one where Rails publishes so many goodies for the community and Ruby announces 3.4.0 release candidate
Table of Contents
A note from Lucian Ghinda - the curator of Short Ruby Newsletter:
The Short Ruby will take a winter break, so the next edition will probably be on 13 January. I will monitor posts starting on 6 January. Meanwhile, enjoy the winter vacation and start a new project with Ruby 3.4 and Rails 8
If you want to support the newsletter in 2025, you can upgrade to paid subscriber at https://subscribe.shortruby.com
(ad π)
Thereβs a reason 400,000 professionals read this daily.
Join The AI Report, trusted by 400,000+ professionals at Google, Microsoft, and OpenAI. Get daily insights, tools, and strategies to master practical AI skills that drive results.
π Launches and discounts
π Stephen Margheim launched sqlite.directory (that is open source at github.com/fractaledmind/sqlite.directory)
Source: @fractaledmind.bsky.social
π Events
π Ruby Kaigi announced the CFP is open at CFPApp
Source: @rubykaigi
π All about Code and Ruby
π Hiroshi Shibata released Ruby 3.4.0.rc1 - read the official announcement on ruby-lang.org
Mike Dalessio shared that rake-compiler-dock now supports 3.4.0-rc1
Source: @flavorjon.es
π Rails announced new versions for Rails Versions 7.0.8.7, 7.1.5.1, 7.2.2.1, and 8.0.0.1 have been released!
π Rafal Franca announced the release of Rails 8.0.1
Source: @rails
π A series of fresh things were published by Rails. See a summary on their blog post Want to learn about Rails 8? START HERE
π Published a case study about Doximity using Rails that I think we can use in conversations about starting a big project with Ruby on Rails:
Source: @rails
Source: @doximity_tech
Published a new Getting Started Tutorials written by Chris Oliver:
Source: Ruby on Rails Blog
π Published a series called Rails 8 Unpacked with Typecraft devs that goes through all the goodies that Rails 8 has to offer:
Source: @rails
π A big update published for Rails Guides:
Source: @rails
π Tim Riley wrote about State of Hanami: December 2024
π Alex Denisov, Amir Rajan published a proposal about Lightstorm: minimalistic Ruby compiler
π» Code Samples
Start learning AI in 2025
Everyone talks about AI, but no one has the time to learn it. So, we found the easiest way to learn AI in as little time as possible: The Rundown AI.
It's a free AI newsletter that keeps you up-to-date on the latest AI news, and teaches you how to apply it in just 5 minutes a day.
Plus, complete the quiz after signing up and theyβll recommend the best AI tools, guides, and courses β tailored to your needs.
οΈπ» Postmodern shared about constants lookup in Ruby:
π» Yaroslav Shmarov shared a code sample about Rails OmniAuth:
Source: @yarotheslav.bsky.social
π» Chris Oliver shared a code sample about frozen errors:
Source: @excid3.com
Xavier Noria shared the document he and Jean Boussier wrote about Ruby: The future of frozen string literals
Source: @fxn.bsky.social
οΈπ» Ruby On Rails shared a code sample about using the ActiveSupport::Testing::ConstantStubbing
Source: @rails
οΈπ» Rob Zolkos shared a code sample about Rails built-in support for previewing emails in the web browser:
Source: @robzolkos
οΈπ» Stephen Margheim shared about encoding a polymorphic association in a form:
Source: @fractaledmind
He later added:
Source: @fractaledmind
οΈπ» Ruby Cademy shared about using !
in Rails 8 migration generator to mark a column in a migration as null: false
Source: @RubyCademy
οΈπ» Ross Kaffenberger shared about how Ruby treats the backslash character as a line continuation:
Source: @rossta
οΈπ» Ruby Cademy shared about the new params#expect
the option to handle explicit parameter handling (see ExpectedParameterMissing):
Source: @RubyCademy
οΈπ» Saeloun shared a code sample about implementing passwordless authentication with WebAuthn in rails:
Source: @HiSaeloun
π» Jose Farias shared a code sample about code being context aware:
Source: @jose.omg.lol
π» Ender Ahmet Yurt shared a code sample about using each_with_object
instead of each
with mutations:
Source: @enderahmetyurt.com
π» Gregory Brown shared a puzzle asking where it can be the error in the shared code sample. (check the Gist here). There are answers in the replies, see for example the one from Konnor Rogers
Source: @skillstopractice.com
π» Rails Designer published code samples about Simple Stripe Billing for Rails
π» Wilbert Liu shared a code sample about using Rails and Inertia:
Source: @wilbertliu.com
π» Tim Fischbach shared a code sample about preloading different data based on usage:
Source: @tfischbach.bsky.social
Source: @tfischbach.bsky.social
π» Harry Llewelyn shared about Ruby on Rails offering protection for XSS, SQL Injection and CSRF:
οΈπ» Hyukki shared a code sample showing how they use delegated type from Rails:
Source: @hyukki725
οΈπ» Vitaly Slobodin shared a tip about configuring mise:
Source: @Vitalliumm
οΈπ» Ross Kaffenberger shared about building Rails UI with Rails:
Source: @rossta
οΈπ» Saeloun shared about Rails 8 adding the possibility to use multiple rate limits per controller:
Source: @HiSaeloun
οΈπ» Matt Swanson shared a code sample about doing append body to append content to the body:
Source: @_swanson
οΈπ» Ruby Cademy shared about using Rails ActiveRecord with_lock:
Source: @RubyCademy
οΈπ» John Nunemaker shared about using bundler-leak:
Source: @jnunemaker
π Thinking about Code Design
οΈπ Joel Drapper shared about replacing some status enums with saving the date they were saved:
Source: @joel.drapper.me
Jamie Lawrence added:
Source: @jamie.ideasasylum.com
There is an interesting discussion happening in the replies about Ruby boolean types. I am adding here some cherry picked responses, not necessary one after the other. You should read the entire thread:
Source: @joel.drapper.me
Source: @skillstopractice.com
Source: @skillstopractice.com
It could be helpful to read (with an open mind) the discussion in this old thread (since Ruby 3.1) about returning a boolean that someone shared in one of the replies.
π Jorge Manrubia published a new article about A vanilla Rails stack is plenty
Source: @jorgemanru
οΈπ Maciej Mensfeld shared about a new PR merged to Rails about railties/test_parser: Cache prism work done in definition_for by jsharpify Β· Pull Request #53936 Β· rails/rails Β· GitHub
Source: @maciejmensfeld
π‘Around code (news, findings, books, and more - all about Ruby)
π‘ Ruby On Rails shared about GustoHQ as a Contributing member of Rails Foundation:
Source: @rails
β€οΈ Why Choose Ruby and Rails
β€οΈ Gergely Orosz shared about choosing Ruby and Ruby on Rails:
Source: @GergelyOrosz
Irina Nazarova added:
Source: @inazarova
β€οΈ Misaki Shioi (γγγ) shared about writing Ruby:
Source: @coe401_
β€οΈ Miguel Michelson shared about the ease of upgrading from Rails 7 to Rails 8:
Source: @michelson
β€οΈ Lucian Ghinda shared about starting new projects with Ruby 3.4 and Rails 8:
Source: @lucianghinda
π§° Gems, Libraries, Tools and Updates
If you are looking for some gems inspiration, on Bluesky there are people sharing one gem per day. Just open the 20DayGemChallenge and see what people are posting currently.
Gregory Brown shared some of the threads recommending gems here:
Source: @skillstopractice.com
π New Gems and Repos
π Aaron Allen announced a new gem called domainic-attributer - Domainic::Attributer is a powerful toolkit for Ruby that brings clarity and safety to your class attributes
π Stephen Margheim announced a new repo sqlite.directory: Directory of SQLite-backed applications
π Igor Kasyanchuk published a new gem called async_magic - Simple async declaration for asynchronous methods
π§° Updates
π§° Ruby Monthly Meeting happend on 12 December and the meeting log is available at https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-12-12.md There are a lot of things being discussed, I will include one here:
π§° Tomoya Ishida is now a Ruby core committer after a proposal from Akira Matsuda:
π§° Yudai Takada is now a Ruby core committer after a proposal from Kaneko Yuichiro:
π§° Donal McBreen released Kamal v2.4.0
π§° Postmodern announced Release 0.9.4 Β· postmodern/ruby-install
π§° Bozhidar Batsov announced an update for Rubocop version 1.69.2
Source: @batsov.net
π§° Mike Dalessio announced an update of Nokogiri v1.17.1
Source: @flavorjon.es
π§° Kasper Timm Hansen announced an update about active_record-associated_object - Extract Collaborator Objects from your Active Records, a new concept called Associated Objects
π§° Maeda Go announced the release of Redmine 6.0.2 and 5.1.5:
Source: @g_maeda
π§° Camden Narzt announced a new version for Passenger 6.0.24 (I also recommend reading the Lower latencies during deploys in new releases of Phusion Passenger article)
π§° Yaroslav Shmarov announced an update to the moneygun gem about Organisation ownership transfer
Source: @yarotheslav
π§° Rails Designer announced a new release for RailsIcons - Add any icon library to a Rails app. Support for Feather, Lucide, Heroicons, Tabler and others
π€ Web Kit announced WebKit Features in Safari 18.2 | WebKit
π Justin Jackson shared about stress:
Source: @justinjackson.ca
More content: π π π§ π₯ βπΎ
π Vipul A M published a new edition about Ruby on Rails β New Rails Tutorial and Unpacked Videos, Releases, ActiveModel::Attributes::Normalization and more!
π Hotwire Weekly published a new edition about Week 50 - Turbo morphing woes, 10 Hotwire Native tips, and more!
π Ruby Weekly published a new article about Ruby 3.4 - almost!
π Awesome Ruby Newsletter published a new article about π Issue 447 - Keeping Rails cool: the modern Evil Martians frontend toolkit
π Sajjad Umar published a new edition about Ruby on Rails β Dec 2024
π§ Podcasts
π§ Remote Ruby published an article about Jason Meller on 1Password joining the Rails Foundation
π§ The Ruby On Rails Podcast published a new article about Episode 529: Catching Up With Nick Schwaderer
π½οΈ π₯ Videos
π₯ Ruby Central announced that videos from Ruby Conf 2024 are live
π₯ Joel Drapper published a video about Ride along with Phlex and Literal
π₯ Jp Camara published a new article about My RubyConf talk is now on YouTube!
π₯ Yaroslav Shmarov published a new video about 180 EU eInvoicing. PDF to XML to JSON. FaxturX, ZUGFeRD
π₯ Jason Swett published a new article about Design Flaws in the Way of Performance Improvement - Live Coding on SaturnCI
π₯ AI on Rails published a video about Build a Rails 8 Application Using Aider AI and CSS Zero
π₯ Drifting Ruby published a new video about Browser LLMs | Drifting Ruby
π₯ Dave Thomas continues to publish videos solving Advent of Code with Ruby
π₯ Tyler Tringas published a new video about Re-learning to Code with AI: 1st Rails App Live
π₯ Vladimir Dementyev shared their video from Kaigi on Rails about Rails Way, or the highway
βπΎ Articles
Whatβs new π
Alex Denisov, Amir Rajan published an article about Lightstorm: minimalistic Ruby compiler
Tim Riley published an article about Hanami | State of Hanami, December 2024
Jorge Manrubia published a new article about 37signals Dev β A vanilla Rails stack is plenty
Rails Designer published a new article about Simple Stripe Billing for Rails
Jeffery Morhous published a new article about What's new in Rails 8
Irina Nazarova published an article about Keeping Rails cool: the modern frontend toolkit
Matheus Richard published an article about Turbo morphing woes
Peter Solnica published a new article about Retiring from the core teams
Rhiannon Payne published an article about RubyGems.org Completes First Security Audit With Trail of Bits
Ruby Central published an article about Ruby Central Welcomes Chelsea Kaufman as Transitional Executive Director
Avo published a new article about Dynamic Table of Contents with Rails and Nokogiri
Josef Strzibny published a new article about How does Kamal deploy to multiple hosts and about How to use a remote build server with Kamal
Jared White published a new article about Tired of Dealing with Arguments? Just Forward Them Anonymously!
Stephen Margheim published a new article about Select dropdown for polymorphic associations
Ender Ahmet Yurt published a new article about Preventing Race Conditions in Rails: A Practical Guide
Artem Avetisyan published an article about Faster Rails fixtures
Lucas M. published an article about Rails transactional callbacks beyond models
Jose Farias published an article about Code Can Be Context-Aware
Chetan Mittal published an article about Rails 8.0 Credentials: The Ultimate Guide to Secure Configuration Management and about Rails 8.0: Goodbye Rails::ConsoleMethods - A Developerβs Guide to Console Customization
Edigleysson Silva published an article about Everything You Need to Ace PWAs in Rails Turn your Rails app into an engaging native-like application in a couple of minutes
Ryan Bigg published an article about Scoping an Active Record join
Prasanth Chaduvula published an article about Rails 8 Adds Parameters#expect To Safely Filter And Require Params and about Rails 8 Adds if_not_exists Option On The add_enum_value
Jared Norman published an article about Advent of Criminally Bad Ruby Code
Suman Awal published an article about Ruby: Speed Up Data Lookups with Hashes vs. Arrays
Chetan Mittal published an article about Rails 8.0: Goodbye Rails::ConsoleMethods - A Developerβs Guide to Console Customization and about Rails 8.0 Credentials: The Ultimate Guide to Secure Configuration Management
How-TOs π
Mintbit published a new article about Why You Should Consider Using excluding Instead of where.not in ActiveRecord
Victor Cobos published an article about How to Customize Rails Form Error Handling
Rails Designer published a new article about Simple accordion without JavaScript
Rishi Jain published a new article about Refactoring Rails: Strategies to refactor models
Best Web Ventures published a new article about published an article about Optimizing Database Performance in Ruby on Rails 8: Modern Techniques & Best Practices
Dennis Paagman published a new article about Building a Native sharing component with Hotwire Native (iOS)
Reply