---
title: "Rails: The Movie"
publication: "Ruby Weekly"
issue: 677
published_at: "2023-11-09"
canonical_url: "https://rubyweekly.com/issues/677"
---

Plus lots of stdlib updates, Ruby 3 keyword argument confusion, and some lagniappe. |        

#​677 — November 9, 2023 

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

Together with [![Bosch\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_443/e_make_transparent/co_white,e_outline:17/udmp5biufp3th3c4xz0n.png)](https://www.bosch.com/careers/?utm_campaignid=ruby&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=primary&utm_content=recognition)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/px4sefg1qnmmqrgyppag.jpg)](https://www.youtube.com/watch?v=HDKUEXBF3B4)  

▶[Ruby on Rails: The Documentary](https://www.youtube.com/watch?v=HDKUEXBF3B4) — Skip _Netflix_ and enjoy this well produced 45-minute documentary going into the history of Rails (including the infamous _'F— You'_ slide) and DHH's relationship with the project and the community. A few other folks pop up to flesh out the story and we get to see a six-year old DHH! If you prefer to read, don't worry – we're told a written version will be available shortly. 

Honeypot   

💡 If you like this sort of documentary, a recently released [▶️ TypeScript origins documentary](https://www.youtube.com/watch?v=U6s2pdxebSo) was also fantastic, even if you're not a TypeScript developer.  

[Should I Add Typing to My Ruby Project?](https://radanskoric.com/articles/should-i-add-typing-to-my-ruby-project) — Last week we linked to Radan’s experiment in [adding types to a Ruby project](https://radanskoric.com/experiments/experiment-gradual-typing). This week he’s back with a quick, quantitative way for you to evaluate whether _your_ team should be considering adding types to your project (and how). 

Radan Skorić   [![\](https://copm.s3.amazonaws.com/b9a0c5d5.png)](https://www.bosch.com/careers/?utm_campaignid=ruby&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=primary&utm_content=recognition) 

[Feel the Power of More Than 420,000 Teammates and Work #LikeABosch](https://www.bosch.com/careers/?utm_campaignid=ruby&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=primary&utm_content=recognition) — At Bosch, we shape the future with high-quality technologies and services to inspire people and improve their lives. And it’s our people who make us remarkable. Our success is your success. Let’s celebrate together. [Learn more](https://www.bosch.com/careers/?utm_campaignid=ruby&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=primary&utm_content=recognition). 

Bosch sponsor   

[The Ultimate Loofah Cheatsheet for Ruby](https://proxiesapi.com/articles/the-ultimate-loofah-cheatsheet-for-ruby) — [Loofah](https://github.com/flavorjones/loofah) is a gem for transforming and sanitizing HTML/XML built on _top_ of Nokogiri. 

Mohan Ganesan   

💡 If you prefer Nokogiri, however, Mohan has [a Nokogiri cheat sheet too.](https://proxiesapi.com/articles/the-ultimate-nokogiri-cheat-sheet-for-ruby)  

[Using the Neighbor Gem for AI Embeddings](https://www.crunchydata.com/blog/ruby-on-rails-neighbor-gem-for-ai-embeddings) — [Neighbor](https://github.com/ankane/neighbor) makes storing AI embeddings using `pgvector` simple, so you can do ‘nearest neighbor’ searches for things (i.e. the most similar image or document) in an idiomatically Active Record way. 

Christopher Winslett (Crunchy Data)   

- 🏆 The Ruby Association has announced [which projects have been selected by its committee](https://www.ruby.or.jp/en/news/20231031) to receive a _Ruby Association Grant._ Kevin Newton also won [the Ruby Prize 2023](https://twitter.com/kddnewton/status/1722477472170586433) for his work on the [Prism](https://github.com/ruby/prism) Ruby parser.
- 📈 Lucian Ghinda presents [an analysis of Ruby gem download numbers](https://allaboutcoding.ghinda.com/ruby-gems-download-trends-an-analysis-from-2013-to-2023) between 2013 and now.
- 👨‍🔧 Vinicius Stock, Ruby LSP lead, has tweeted about [some of the recent improvements made to the Ruby LSP](https://twitter.com/vinistock/status/1722317590289104942).
- 🗣 A [thorough interview with Daniela Baron,](https://www.writesoftwarewell.com/interview-with-daniela-baron/) a staff engineer who works with Ruby and Rails at _FundThrough._ She shares some useful resources and advice, as well as the tools she likes to use.
- 📰 JetBrains has [some updates on its RubyMine 2023.3 EAP](https://blog.jetbrains.com/ruby/2023/11/rubymine-2023-3-eap-update/).
- … Victor Shepelev [concludes his series looking into pattern matching](https://zverok.space/blog/2023-11-03-syntax-sugar2-pattern-matching-fin.html).  

📕 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/rzc78kjosdxmxetmlvo9.jpg)](https://ryanbigg.com/2023/11/ruby-32-hashes-and-keyword-arguments)  

[Ruby 3, Hashes and Keyword Arguments](https://ryanbigg.com/2023/11/ruby-32-hashes-and-keyword-arguments) — Can you spot the issue in the code above? _“We didn’t for a while.”_ Ryan digs into how a change in how Ruby 3 handles keyword arguments led to confusion. 

Ryan Bigg   

[See the History of a Method with `git log -L`](https://calebhearth.com/git-method-history) — While `git log` lets you see commit logs, you can use the `-L` option to “trace the evolution” of a specific method, showing you logs of how it has changed over time, regardless of other things happening in the same file. 

Caleb Hearth   

[💸 Need to Upgrade Rails but Can’t Get Budget Approval? Get a Roadmap](https://www.fastruby.io/roadmap?utm_source=cooperpress&utm_medium=ruby-weekly&utm_campaign=nov-5-2023&utm_term=roadmap-budget&utm_content=estimates) — Secure a detailed Ruby and Rails upgrade action plan with timelines and estimates to strengthen your [business case](https://www.fastruby.io/blog/rails/upgrade/how-to-pitch-an-upgrade-to-your-boss.html). 

The Roadmap by FastRuby.io sponsor   

[Sponsoring _Rails World_: What Did It Cost, and Was It Worth It?](https://blog.appsignal.com/2023/10/30/sponsoring-rails-world-what-did-it-cost-and-was-it-worth-it.html) — If you’re as nosy as me about these sorts of things, Roy is pretty transparent here. 

Roy Tomeij   

▶[Detect Spam with AI](https://www.driftingruby.com/episodes/detect-spam-with-ai) — Python and an LLM do the heavy lifting here, but David shows us how to integrate with them to add a feature to a Rails app. 

David Kimura   

[Undo in `assets:clobber` What You Do in `assets:precompile`](https://calebhearth.com/assets-precompile-clobber) — The `assets:clobber` Rake task is the less well-known sibling of `assets:precompile`. 
Caleb Hearth   

[`git rebase`: What Can Go Wrong?](https://jvns.ca/blog/2023/11/06/rebasing-what-can-go-wrong-/) 
Julia Evans  

🛠 Code & Tools  

[JRuby 9.4.5.0 Released: Ruby 3.x on the JVM](https://www.jruby.org/2023/11/02/jruby-9-4-5-0) — The Ruby 3.1-compatible JRuby version gains support for the experimental Fiber::Scheduler and IO::Buffer APIs (based on the Ruby 3.3 implementation) if you enable them with `-Xexperimental.fiber.scheduler`. 

The JRuby Team   

[ActualDbSchema: Keep a Rails DB Schema Consistent When Switching Branches](https://github.com/widefix/actual_db_schema) — Migrations can get messy if you’re switching branches in a Rails app. This helps [clean up that mess.](https://blog.widefix.com/actual-db-schema/) Now supports Rails 7.1. 

Andrei Kaleshka   

[Get APM Insights into Your Ruby Apps in Less Than 4 Minutes!](https://ter.li/dwyi8j) — Whether it's those pesky N+1 database queries or memory bloat troubles, Scout's got your back. It's all about making sure your Ruby apps run smoothly and effortlessly. 

Scout APM sponsor   

[Pwned: Ruby Wrapper for the _Pwned Passwords_ API](https://github.com/philnash/pwned) — Check if a password has been found in any of the many frequent data breaches that occur. 

Phil Nash   

- [Reline 0.4](https://github.com/ruby/reline) – The modern 'readline'-compatible input library.
- [Steep 1.6](https://github.com/soutaro/steep/wiki/Release-Note-1.6) – Static type checking tool for Ruby.
- [Statesman 11.0](https://github.com/gocardless/statesman) – Opinionated state machine library.
- [Sidekiq-Cron 1.11](https://github.com/sidekiq-cron/sidekiq-cron) – A scheduler for Sidekiq jobs.
- [minitest-debugger 1.1.0](https://www.zenspider.com/releases/2023/11/minitest-debugger-version-1-1-0-has-been-released.html)
- [Hanami 2.1.0.rc2](https://hanamirb.org/blog/2023/11/08/hanami-210rc2/)   

_**STANDARD LIBRARY UPDATES:**_ 

Numerous long-standing standard libraries are now distributed and updated separately from CRuby itself and several such updates have landed this week: 

- [Benchmark 0.3](https://github.com/ruby/benchmark) – Ways to measure and report the time to run code.
- [RBS 3.3](https://github.com/ruby/rbs) – Language for describing app structure and type signatures.
- [RDoc 6.6](https://github.com/ruby/rdoc) – HTML and online documentation generator.
- [OpenStruct / `ostruct` 0.6](https://github.com/ruby/ostruct) – A flexible Hash-like data structure.
- [dRuby / `drb` 2.2](https://github.com/ruby/drb) – Distributed object system.
- [RubyGems 3.4.22](https://blog.rubygems.org/2023/11/09/3.4.22-released.html) – OK, not a standard library, but it's a small update 😉 

_Note: These updates are minor in nature with no significant new features, and based around fixes and tweaks._    

Jobs  

[Find Ruby Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired    

🎁 A quick bonus item.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ucglfr4yykrodncmp74o.jpg)](https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow#indentrainbow)  

[Indent Rainbow: Make Indentation More Colorful in VS Code](https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow#indentrainbow) — I appreciate if this doesn’t click for you, but I recently discovered this VS Code extension that makes indentation levels more obvious through the use of color (either bars, as above, or lines). It has six million downloads, so I may be late to the party, but.. anyway 😆 

Hans Raaf         

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