---
title: "Ruby's method methodology"
publication: "Ruby Weekly"
issue: 708
published_at: "2024-06-20"
canonical_url: "https://rubyweekly.com/issues/708"
---

Plus refactoring transaction blocks with end-less methods. |        

#​708 — June 20, 2024 

[Read on the Web](https://rubyweekly.com/issues/708)  

Together with [![WorkOS\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_514,h_98/e_make_transparent/co_white,e_outline:9/tdfxwgk852ui9leli4wm.png)](https://workos.com/?utm_source=cpruby&utm_medium=newsletter&utm_campaign=q22024)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/oetzbaxjkfri5s6fzikt.jpg)](https://zverok.space/blog/2024-06-14-method-evolution.html)  

[The Design Decisions and Evolution of Method Definitions](https://zverok.space/blog/2024-06-14-method-evolution.html) — If you enjoyed Victor’s series of posts digging into Ruby syntax last year ([found here](https://zverok.space/writing/)), he’s back with a new series studying Ruby language design decisions. He starts with a focus on _method definitions_ and the myriad of features available when defining methods. 

Victor Shepelev   

▶[SaaS on Rails on PostgreSQL](https://www.youtube.com/watch?v=RwXJ4s2pw1A) — A 25-minute talk given at last week’s [POSETTE](https://www.citusdata.com/posette/2024/) Postgres conference flying through many of the considerations and techniques involved in using and scaling the use of Postgres when building modern Rails apps. 

Andrew Atkinson   [![\](https://copm.s3.amazonaws.com/e6dce37c.png)](https://workos.com/?utm_source=cpruby&utm_medium=newsletter&utm_campaign=q22024) 

[WorkOS: Modern Identity Platform for B2B SaaS](https://workos.com/?utm_source=cpruby&utm_medium=newsletter&utm_campaign=q22024) — Start selling to enterprise customers with just a few lines of code. WorkOS provides flexible, easy-to-use APIs to integrate SSO, SCIM, and RBAC in minutes. It's used by some of the hottest startups in the world including Perplexity, Vercel, & Webflow. 

WorkOS sponsor   

[Introducing a `cd` Command to IRB](https://github.com/ruby/irb/pull/971) — While not a complete port of the popular [Pry](https://pry.github.io/) command, this brings easier object introspection into IRB. It’s (mostly) built on top of `popws` and `pushws`, so more syntactic sugar than a new feature. 

Stan Lo   

- 💬 [An interview with Homebrew's maintainer Mike McQuaid](https://onceamaintainer.substack.com/p/once-a-maintainer-mike-mcquaid), including his history with Ruby.
- 📰 Gift Egwuenu is back with [the latest monthly update of what's new with RubyGems](https://blog.rubygems.org/2024/06/17/may-rubygems-updates.html) and RubyGems․org.  

📄 Articles, Tutorials & Videos  

[Refactoring Transaction Blocks with `end`-Less Methods](https://allaboutcoding.ghinda.com/refactoring-transaction-blocks-with-the-endless-method) — Two weeks ago, Lucian gave us a tour of [Ruby’s `end`-less methods](https://allaboutcoding.ghinda.com/endless-method-a-quick-intro). Now, he shows us a specific use case, based upon making minor improvements to two Rails apps. 

Lucian Ghinda   

[Inertia.js in Rails: A New Era of Effortless Integration?](https://evilmartians.com/chronicles/inertiajs-in-rails-a-new-era-of-effortless-integration) — [Inertia](https://inertiajs.com/) enables building _“modern single-page React, Vue, and Svelte apps using classic server-side routing”._ While its main target is PHP’s _Laravel_ framework, it can integrate with Rails too, and help you bridge the SPA / HTML rendering divide. 

Svyatoslav Kryukov and Travis Turner (Evil Martians)   

[🚀 Need an Action Plan to Upgrade to Rails 7.2 and Ruby 3.3?](https://go.fastruby.io/nmf) — The Roadmap by [@FastRubyIO](https://x.com/FastRubyIO): Discover the work and effort it takes to upgrade and ensure security compliance. 

FastRuby.io | Upgrade Services sponsor   

[So We've Got a Memory Leak...](https://stevenharman.net/so-we-have-a-memory-leak) — A neat post covering the thoughts and ideas that might arise when you encounter what appears to be a memory leak in an app, followed by the practical steps to actually take. 

Steven Harman   

💡 In related news, v1.0.2 of the [MemoryProfiler gem](https://github.com/SamSaffron/memory_profiler) has just been released.  

📄 [Running Rails System Tests with Playwright Instead of Selenium](https://justin.searls.co/posts/running-rails-system-tests-with-playwright-instead-of-selenium/) Justin Searls 

📄 [Rails Authentication: Gems vs. Recipes vs. Generators](https://masilotti.com/rails-authentication/) Joe Masilotti 

📄 [`ActiveStorage::Blob#compose` Supports Custom Blob Key in Rails 7.2](https://blog.saeloun.com/2024/06/11/rails-7-2-support-custom-blob-key/) Jijo Bose 

📄 [UUIDv7 Implemented in 20 Languages](https://antonz.org/uuidv7/) – Surprisingly short and sweet. Anton Zhiyanov  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/st9st1hviaegq9bzwvqb.jpg)](http://rouge.jneen.net/)  

[Rouge 4.3: Pure Ruby Pygments-Compatible Syntax Highlighting](http://rouge.jneen.net/) — A long standing project that supports over 200 different languages, including Ruby, of course. Its HTML output is compatible with stylesheets designed for the popular Python-based [Pygments](https://pygments.org/) highlighter. [GitHub repo.](https://github.com/rouge-ruby/rouge) 

Jeanine Adkisson   

[command_kit: A Toolkit for Building Robust CLI Commands](https://github.com/postmodern/command_kit.rb) — Define commands for a CLI app using plain-old Ruby classes with options and arguments declared as attributes. command_kit then wires everything up in good UNIX / POSIX fashion and adds features like interactive input, terminal size detection, and man pages. 

Postmodern   

[Don't Risk Out of Date Ruby & Rails Versions](https://reinteractive.com/services-codecare-shield) — Get a free security assessment and discuss how our incremental upgrade service — CodeCare Shield — can improve the speed, security and stability of your app. 

reinteractive/CodeCare® Shield sponsor   

[MiniMagick: A Mini Replacement for RMagick](https://github.com/minimagick/minimagick) — For when you don’t need the full power of [RMagick](https://github.com/rmagick/rmagick) and just want access to ImageMagick / GraphicsMagick’s command line features for resizing, rotating, converting, and inspecting images. 

Corey Johnson   

[Sunspot: Solr-Powered Search for Ruby Objects](https://github.com/sunspot/sunspot) — _“Provides a simple, intuitive, expressive DSL backed by powerful features for indexing objects and searching for them.”_ 

Sunspot   

- [Kamal 1.7](https://github.com/basecamp/kamal) – The container-based app deployer. Kamal's configuration is now validated and unknown keys will raise errors.
- [PublicSuffix 6.0](https://github.com/weppos/publicsuffix-ruby) – Domain name parser based on the Public Suffix List.
- [Grape 2.1](https://github.com/ruby-grape/grape) – Opinionated framework for creating REST-like APIs.[Changelog.](https://github.com/ruby-grape/grape/blob/master/CHANGELOG.md#210-20240615)
- [counter_culture 3.6](https://github.com/magnusvk/counter_culture) – Turbo-charged counter caches for Rails apps.  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lwjiu3gwvxny5mqaqwhc.jpg)](https://github.com/jeremyevans/forme)  

- [Forme 2.6](https://github.com/jeremyevans/forme) – HTML form builder library _(above)._
- [Erubi 1.13](https://github.com/jeremyevans/erubi) – Small ERB implementation / simplified fork of Erubis.
- [Tmuxinator 3.3](https://github.com/tmuxinator/tmuxinator) – Manage complex `tmux` sessions easily.
- [Devise::OTP 0.7](https://github.com/wmlele/devise-otp) – Two-factor auth extension for Devise.
- [HTTP-2 0.12](https://github.com/igrigorik/http-2) – Pure Ruby implementation of HTTP/2.
- [RubyGems 3.5.13](https://blog.rubygems.org/2024/06/14/3.5.13-released.html)
- [minitest 5.24.0](https://www.zenspider.com/releases/2024/06/minitest-version-5-24-0-has-been-released.html)    

**🤖 QUICK NOTE** 

Next week, I'm attending the [_AI Engineer World's Fair_](https://www.ai.engineer/worldsfair) and look forward to seeing if any of the [hopes for Ruby to play a role in the future of AI engineering](https://obie.medium.com/the-future-of-ruby-and-rails-in-the-age-of-ai-8f1acea31bc2) are coming to fruition! 

It's might be a bit late to attend in person unless you're based in SF (we [have a ticket discount if you can](https://ti.to/software-3/ai-engineer-worlds-fair/discount/COOPERPRESS), though) but you can [subscribe to the AI Engineer YouTube channel](https://www.youtube.com/@aiDotEngineer) to be notified when the livestreams go live next Wednesday and Thursday. 

If you do happen to be there, come and say hi, or [follow me on X/Twitter](https://x.com/cooperx86) for updates :-) 

_— Peter Cooper, your editor_         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
