---
title: "How good different LLMs are at writing Ruby code"
publication: "Ruby Weekly"
issue: 744
published_at: "2025-03-27"
canonical_url: "https://rubyweekly.com/issues/744"
---

Plus Ruby 3.2.8 and 3.1.7 arrive to fix some CGI and URI vulnerabilities. |        

#​744 — March 27, 2025 

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

Together with [![Honeybadger\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_400,h_84/e_make_transparent/co_white,e_outline:7/a5ruvth763xxndgqvll3.png)](https://www.honeybadger.io/blog/introducing-alarms/?utm_source=rubyweekly&utm_medium=email&utm_campaign=2025-03-21-rubyweekly-primary)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jxyepvpprlxbdyjzrmrr.jpg)](https://github.com/yjacquin/fast-mcp)  

[Fast MCP: A Ruby Implementation of the Model Context Protocol](https://github.com/yjacquin/fast-mcp) — MCP (Model Context Protocol) servers enable certain LLM-based agents (such as Claude, Claude Code, and Cursor) to perform actions/call tools outside of their usual restricted environment. This library lets you build tools in Ruby which such agents can then reach out to and use. 

Yorick Jacquin   

💡 Interest in MCPs is taking off rapidly, with [a Rails-focused MCP implementation](https://mariochavez.io/desarrollo/2025/03/21/rails-mcp-server-enhancing-ai-assisted-development/) also available. [OpenAI is also beginning to show an interest](https://openai.github.io/openai-agents-python/mcp/) in working with MCP, so it's becoming a bit of a standard now.  

[Ruby 3.2.8 and 3.1.7 Released](https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-2-8-released/) — These minor releases fix the vulnerabilities in `CGI` and `URI` [described here](https://www.ruby-lang.org/en/news/2025/02/26/security-advisories/). [Ruby 3.1.7](https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-1-7-released/) is also considered the final release of the 3.1 series with users encouraged to upgrade to 3.3 or 3.4. 

Hiroshi SHIBATA   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/ff0bbe42.png)](https://www.honeybadger.io/blog/introducing-alarms/?utm_source=rubyweekly&utm_medium=email&utm_campaign=2025-03-21-rubyweekly-primary) 

[NEW: Get Real-Time Alerts from Your Logs in Honeybadger](https://www.honeybadger.io/blog/introducing-alarms/?utm_source=rubyweekly&utm_medium=email&utm_campaign=2025-03-21-rubyweekly-primary) — We just shipped a new feature for log management. Alarms allow you to combine a query (“count all slow requests in the past five minutes”) with a threshold (”when count is > 2”) and trigger alerts when the result exceeds the threshold. [Read the blog post →](https://www.honeybadger.io/blog/introducing-alarms/?utm_source=rubyweekly&utm_medium=email&utm_campaign=2025-03-21-rubyweekly-primary) 

Honeybadger sponsor   

[Exploring Ruby Ractors](https://jpterry.com/posts/2025/03/exploring-ruby-ractors/) — Inspired by some recent posts about Ractors, John set out to see if he could use them to peg his CPU usage (_“I paid for 10 cores, I’m gonna use 10 cores”_). A fun exploration, including a look at just how much YJIT contributes to the modern Ruby performance story. 

John Terry   

[New Policies to Support the Growth of RubyGems](https://rubycentral.org/news/introducing-new-policies-to-support-the-growth-of-rubygems/) — In response to a potential legal issue that arose around taking down a gem with a possibly trademarked name, Ruby Central is tightening up its official policies [which can be read in full here](https://rubygems.org/policies) – the policies will take final effect in late May, after a review period. 

Marty Haught (Ruby Central)   

**IN BRIEF:** 

- 📕 It's great to hear from Russ Olsen that [a second edition of _Eloquent Ruby_](https://www.linkedin.com/posts/russolsen_im-thrilled-to-announce-that-brandon-weaver-activity-7310320740807888897-_w2f/) is under development.
- 🤖 Oskars Ezerins has [benchmarked how good different LLMs are at generating Ruby code.](https://github.com/OskarsEzerins/llm-benchmarks) Claude's Sonnet models currently lead the pack.
- 🇳🇱 There are just two weeks left to [submit a talk if you want to speak](https://rubyonrails.org/2025/3/7/apply-to-speak-at-rails-world-2025) at _Rails World_ 2025.   

[A Practical Guide to Taming Postgres Isolation Anomalies](https://dansvetlov.me/postgres-anomalies/) — A practical, Ruby-themed (though SQL heavy) walkthrough of Postgres’ concurrency control, detailing real-world issues like lost updates, write skew, and other isolation anomalies. Even if you rarely run into conflicts, you’ll come away with valuable insights on managing transactions. 

Dan Svetlov   

[Examples of Value Objects with Ruby's `Data` Class](https://allaboutcoding.ghinda.com/example-of-value-objects-using-rubys-data-class) — We linked to Lucian’s [article on value objects](https://allaboutcoding.ghinda.com/how-to-create-value-objects-in-ruby-the-idiomatic-way) last week. He follows up with some useful examples of using them to remove boilerplate code and handle API responses. 

Lucian Ghinda   

[🚀 FastRuby.io Makes Your Rails Upgrade Delightfully Boring with Bonsai](https://go.fastruby.io/transform-with-bonsai) — The team behind [RailsBump.org](https://RailsBump.org)offers gradual, 0-downtime upgrades — transform your engineering culture with our experts. 

Bonsai | Upgrade Experts sponsor   

📄 [Running Interactive Sessions with Kamal](https://nts.strzibny.name/interactive-session-kamal/) – How to connect to a container on a server managed by Kamal and run an interactive session. Josef Strzibny 

📄 [Very-Nearly-Free HTTPS Redirects for Heroku and DNSimple](https://justin.searls.co/links/2025-03-20-very-nearly-free-https-redirects-for-heroku-and-dnsimple/) Justin Searls 

📄 [ActiveRecord Query Log Tags for GraphQL](https://thoughtbot.com/blog/activerecord-query-log-tags-for-graphql) Fritz Meissner 

📄 [Running JavaScript After a Turbo Stream Renders](https://nts.strzibny.name/rails-turbo-after-stream-render/) Josef Strzibny 

📄 [Using Postgres Database Constraints in Active Record](https://tejasbubane.github.io/posts/using-postgres-database-constraints-in-rails/) Tejas Bubane 

📄 [Heroku and Ruby Compatibility Table](https://www.fastruby.io/blog/ruby/heroku/versions/compatibility-table.html) Lucero and Medeiros (FastRuby) 

📄 [Using the Presenter Pattern in Rails](https://thoughtbot.com/blog/using-the-presenter-pattern-in-ruby-on-rails) Trésor Bireke  

🛠 Code & Tools 

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

[PicoRuby: A Tiny Ruby Implementation for Microcontrollers](https://github.com/picoruby/picoruby) — An interesting alternative `mruby` implementation designed to get its footprint down even smaller to run on small one-chip microcontrollers. Just 256KB of ROM and 128KB of RAM is needed. 

HASUMI Hitoshi   

[RuboCop v1.75.0: The Static Code Analyzer and Formatter](https://github.com/rubocop/rubocop/releases/tag/v1.75.0) — RuboCop gains improved support for Ruby 3.4. As creator Bozhidar Batsov [noted on X](https://x.com/bbatsov/status/1904907321651675619): _“You won’t be able to tell it from the outside, but this release required a ton of work to get to the point where Ruby 3.4 functionality was exposed via Prism’s Parser translation layer.”_ 

Bozhidar Batsov   

[🐌 If Your Rails Team Needs a Little Boost…](https://sinaptia.dev/services/staff-augmentation/) — We can augment your team with devs to help you keep up with your delivery schedule. [Test us!](https://sinaptia.dev/services/staff-augmentation/) 

SINAPTIA sponsor   

[Terrapin 1.1: Run Shell Commands Safely](https://github.com/thoughtbot/terrapin) — A little extra abstraction for running shell commands that provides safer interpolation, particularly if using user-supplied values. 

thoughtbot, inc.   

- [Logger v1.7.0](https://github.com/ruby/logger/releases/tag/v1.7.0) – Logging utility for outputting messages in Ruby apps.
- [openapi_first v2.5.0](https://github.com/ahx/openapi_first) – Validate requests and responses against an OpenAPI description.
- [ViewComponent 3.22](https://github.com/ViewComponent/view_component/releases/tag/v3.22.0) – Build encapsulated view components in Rails.
- [counter_culture 3.9](https://github.com/magnusvk/counter_culture) – Turbo-charged counter caches for Rails apps.
- [RDoc 6.13](https://github.com/ruby/rdoc/releases/tag/v6.13.0) – Ruby's long standing documentation generator.
- [Vernier 1.6](https://github.com/jhawthorn/vernier) – Next generation CRuby profiler.      

📰 Classifieds   

🚀 Need top tech talent? [TECLA connects you with elite LATAM developers](https://www.tecla.io/network/nearshore-ruby-on-rails-developers?utm_source=NEWSLETTER&utm_medium=CLASSIFIED&utm_campaign=RUBY&utm_id=RUBYWEEKLY)—fluent in English, time zone-aligned & ready to onboard fast! 

--- 

🏡 [Join the team that’s rebuilding homeownership](https://app.welcometothejungle.com/jobs/SzyXIu8G) - Gen H is an innovative mortgage lender seeking a mid-level Ruby engineer to help make homebuying simple, transparent and fair.    

📢 Elsewhere  

A quick roundup of some other interesting updates or useful resources in the broader developer landscape: 

- Rubyist David Bryant Copeland [has given desktop Linux a try](https://naildrivin5.com/blog/2025/03/21/one-week-with-desktop-linux-after-a-20-year-absence.html) after 20 years away and shares a lot of detail about his experiences in getting things set up for dev work.
- `<select>` elements have always been notoriously tricky to style with CSS but [there's a new standardized approach beginning to become available.](https://developer.chrome.com/blog/a-customizable-select?hl=en)
- Ethan McCue has some ['life altering' Postgres patterns](https://mccue.dev/pages/3-11-25-life-altering-postgresql-patterns) for you, and he promises the title _isn't_clickbait.
- 🛠️ [Make Bookmarklets](https://make-bookmarklets.com/) is a handy tool for turning JavaScript into bookmarklet code that you can use directly in a browser bookmark.
- Someone's managed to get [Go code to compile and run on the PlayStation 2.](https://rgsilva.com/blog/ps2-go-part-1/)         

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/).
