#​684 — January 4, 2024

Read on the Web

We're back! What a fantastic end to the year Ruby had. We're going to cover as much of it as we can today, so be prepared, there's a lot.. :-)
__
Peter and the Cooperpress team

Together with  reinteractive

Ruby Weekly

🎉  Ruby 3.3 Released — It's not exactly breaking news, but I was too busy eating turkey on Christmas Day to dig into this new, mammoth release of Ruby till now 😉 If you’ve been playing with the preview and RC releases, little has changed, but here’s the big picture regarding improvements:

Yui Naruse

Ruby 3.3's Language Changes in Detail — For five years, Victor has scoured through each new Ruby release and produced extensive notes on the changes made to the language (rather than CRuby the implementation). 3.3 gets the same treatment here, and any time you spend checking this out will be repaid in problems avoided during future upgrades.

Victor Shepelev

Get CodeCare Shield for Ruby on Rails Security & Updates — Worried about your Ruby on Rails application? With CodeCare Shield, your app will always be secure and up-to-date. Don't let vulnerabilities in your Ruby on Rails applications keep you up at night – let us handle your security worries.

reinteractive/CodeCareShield sponsor

📕 Articles & Tutorials

Why You Need Strong Parameters in RailsStrong Parameters were introduced in Rails in response to a rash of ‘mass assignment’ vulnerabilities. This post explains the problem and how it is addressed in modern Rails apps.

Akshay Khot

Inheritance in Ruby, in Pictures — Unsurprisingly, an illustrated guide to how inheritance works.

Jake Zimmerman

Free eBook: Advanced Database Programming with Rails and Postgres — Learn about subqueries, materialized views, and custom data types in Postgres & Rails and follow along with our examples.

pganalyze sponsor

Nested Modules in Ruby — An explanation of not just two ways to define them, but how to access nested constants and what Module.nesting does.

Akshay Khot

Turn Your Code Into Pixel Art — You might think your code is a work of art, but now it can be visually true, too.

Matheus Richard

Editing Rails Credentials using VS Code — How to use VS Code to edit secrets when you run rails credentials:edit.

Harrison Broadbent

▶  Demystifying the Ruby Package Ecosystem — A RubyConf 2023 talk.
Jenny Shen

Rust, Ruby, and the Art of Implicit Returns
Adam Gordon Bell

Eight Turbo 8 'Gotchas'
Brad Gessler

🛠 Code & Tools

Introducing Superglue: React ❤️ Rails — An attempt at a framework that brings together Rails, React and Redux in a way that makes them as smooth and productive to use as Hotwire, Turbo and Stimulus. We’ll never say no to more options in this area.

thoughtbot

Extralite 2.4: An Enhanced Way to Work with SQLite from Ruby — Imagine a faster and easier way to use SQLite from Ruby than the default sqlite3 library. Now, stop imagining and try this. v2.4 includes improvements like improved performance for multi-threaded apps and support for binding BLOBs.

Sharon Rosner

All that said, sqlite3-ruby 1.7 has just landed with full Ruby 3.3 support.

Dragonfly — Redis with Wings, Built for Modern Ruby Applications — A drop-in Redis replacement with better performance and scalability. Apps built on Dragonfly deliver faster experiences while reducing costs.

Dragonfly sponsor

Versionaire 13.0: An Immutable Semantic Version Type — If you’re working with version numbers, this class provides a lot of neat abstractions (for comparisons, type conversions, equality, etc.)

Brooke Kuhlmann

  • Sinatra 3.2 – The popular DSL-based webapp library. Has a few small enhancements, but most critically Ruby 3.3 and Bundler 2.5 compatibility.

  • ActiveType 2.4 – Make any Ruby object 'quack like ActiveRecord.'

  • RubyGems 3.5.4gem update --system now respects Ruby version constraints.

  • Business Class 1.3 – Commercial Rails SaaS kit. Now with (initial) Stripe support.

  • Graphs and Charts 0.2 – Chart controls for Glimmer DSL for LibUI.

  • HairTrigger 1.1 – Manage database triggers in a Rails-y way.

  • SmarterCSV 1.10 – Load CSVs in as arrays of hashes.

  • Async 2.8 – Asynchronous event-driven reactor.

  • parallel_tests 4.4 – More cores == faster tests.

  • Reek 6.2 – 'Code smell' detector for Ruby.