---
title: "Deep dives into Rails routing and WASI"
publication: "Ruby Weekly"
issue: 645
published_at: "2023-03-16"
canonical_url: "https://rubyweekly.com/issues/645"
---

Plus ChatGPT writes Ruby code for us, and digging into Ruby's largest treasure trove of resources. |        

#​645 — March 16, 2023 

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

Together with [![Cloud66 logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_250,h_250/e_make_transparent/co_white,e_outline:7/ofjgwnua55tonrserpbl.png)](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-23-q1-2)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/mrlbtkrenm1uajpnvism.jpg)](https://www.akshaykhot.com/understanding-rails-router-why-what-how/)  

[Understanding the Rails Router](https://www.akshaykhot.com/understanding-rails-router-why-what-how/) — The routing of requests is a fundamental feature of most webapp frameworks and Rails’ router has become particularly powerful over the years. Akshay digs deep into it here. 

Akshay Khot   

[Awesome Ruby: A Curated List of 900+ Libraries and Tools](https://awesome-ruby.com/) — Every year or two, we link to this epic, categorized collection of (useful!) Ruby goodies. It continues to be updated frequently with new entries added (like [VideoInfo](https://github.com/thibaudgg/video_info), just today) and you’re encouraged to [contribute your own projects too](https://github.com/markets/awesome-ruby/blob/master/CONTRIBUTING.md). 

Marc Anguera Insa   [![\](https://copm.s3.amazonaws.com/be51ab23.png)](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-23-q1-2) 

[Blue/Green Deployments for Rails on Any Cloud](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-23-q1-2) — Deploy Rails applications hassle-free on any cloud and in any region with full database support, custom traffic rules, zero-downtime deployments, blue/green and canary releases, WAF, and more. Try it today for free, and get $100 in credits with the code:`RubyWeekly100` 

Cloud 66 sponsor   

🤗 [Little Gestures Make Our Tools and Community Better](https://fly.io/ruby-dispatch/little-gestures-of-confidence/) — Sometimes it’s the little things that can make an ecosystem, community, or tool more welcoming to people who are just getting started, says Brad. I agree. Keep Brad’s thoughts in mind when working on your own tools or community resources. 

Brad Gessler (Fly)   

**QUICK BITS** 

- Ryan Bigg has written [an open letter to the new Rails Foundation director](https://ryanbigg.com/2023/03/open-letter-to-the-rails-foundation) asking when it's going to start spending some of the money it has to hand.
- JRuby co-lead Tom Enebo has [🐦 released the Postgres driver for Rails 7 AR on JRuby 9.4](https://twitter.com/i/web/status/1636138835326246912).
- Hired's [_2023 State of Software Engineers_ report](https://hired.com/state-of-software-engineers/2023/) curiously notes _"Knocking Go to fourth place, Ruby on Rails surfaced as the most in-demand skill for software engineering roles.."_
- Gift Egwuenu has published the [February 2023 RubyGems update post](https://blog.rubygems.org/2023/03/11/february-rubygems-updates.html).
- Fun to see [a writeup of an interesting Ruby related bug on GitHub](https://www.dsdev.in/blog/github-bug-nil-id) many years ago (I'm pretty sure this used to crop up long before 2013..) – essentially `nil` having an object ID of `4` resulted in some Yehuda Katz-oriented oddities.  

📕 Tutorials, Articles, and Videos  

[A Closer Look at Ruby 3.2's WASI Integration](https://deepsource.io/blog/ruby-wasi-support/) — Some background on the relevance WebAssembly and WASI followed by a look at the technical details and processes including the provision of a virtual file system and the addition of context switching. It’s early days but shows a lot of promise. 

Faraaz (deepsource)   

[Automatic Preloading in Rails: The Dream That Came True?](https://evgeniydemin.medium.com/automatic-preloading-in-rails-the-dream-that-came-true-80ed4982ce2d) — The [ar_lazy_preload gem](https://github.com/DmitryTsepelev/ar_lazy_preload) tries to resolve N+1 problems in Rails by enabling _auto-preloading_ for your queries. In this post, Evgeniy digs into the problem and explains why _“this is very important and would help you avoid many pitfalls.”_ 

Evgeniy Demin   

[Need to Upgrade Rails? Don’t Know How Long It Will Take? We Can Help 🚀](https://www.fastruby.io/roadmap?utm_source=cooperpress&utm_campaign=rw-2023-03-09&utm_medium=rw-newsletter) — Get a roadmap by the experts: We wrote the book on Rails upgrades and ran the last 3 upgrade workshops at RailsConf. 

FastRuby.io | Rails Upgrade Services sponsor   

[Translating XML/Epub with DeepL and ChatGPT](https://code.lulalala.com/2023/0307-1400.html) — The author maintains two gems for translating documents and shares a little of what’s involved and how ChatGPT isn’t ready to replace DeepL for translation just yet. 

Mark Chao   

▶[Using ChatGPT to Write an AWS Cognito + Sinatra Integration](https://www.youtube.com/watch?v=0VjRaPxHfm4) — Continuing on the AI-in-development theme, it’s early days for this sort of thing but the initial results are promising. _(5 minutes.)_ 

Lucas Luitjes   

🤖 If using ChatGPT to write Ruby code intrigues you, Deanin has [▶️ a 15-minute screencast](https://www.youtube.com/watch?v=3ghoOASEhYo) on using the just unveiled GPT-4 to work on a Rails app too.  

[Assigning a Default Value to an Attribute in Active Record](https://andycroll.com/ruby/assign-a-default-to-an-attribute-active-record/) — No callbacks like `before_validation` involved, but using [`attribute`](https://api.rubyonrails.org/classes/ActiveRecord/Attributes/ClassMethods.html)instead. 

Andy Croll   

[Working with Markdown](https://www.honeybadger.io/blog/ruby-markdown/) — A quick introduction to both Redcarpet and Kramdown for rendering Markdown to HTML. 

Aestimo Kirina   

[Get APM Insights into Your Ruby Apps in Less Than 4 Minutes](https://ter.li/mk2fe1) 

Scout APM sponsor   

[A Generalized User-Local Container for UI State in Kredis](https://blog.appsignal.com/2023/03/15/a-generalized-user-local-container-for-ui-state-in-kredis.html) 
Julian Rubisch   

[How to Click Links in Rails Mailers When Writing Tests](https://stevepolito.design/blog/how-to-click-links-in-rails-mailers-when-writing-tests) 
Steve Polito   

▶[Discussing the Ruby Language Server with Vinicius Stock](https://share.transistor.fm/s/a8ddde7a) 
Remote Ruby Podcast podcast  

🛠 Code & Tools 

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

[Coltrane: A Music Theory Library with Added CLI](https://github.com/pedrozath/coltrane) — Generate chord progressions for various music genres and see how to play them on different instruments. Find the progression of chord sequences. Dig up scales after providing some chords. There’s a lot to enjoy here. 

Pedro Maciel   

[VideoInfo 4.0: Get Video Info From Dailymotion, Vimeo, Wistia, and YouTube URLs](https://github.com/thibaudgg/video_info) — If you’ve got Dailymotion, Vimeo, Wistia or YouTube video URLs and want to grab useful metadata about them.. 

Thibaud Guillaume-Gentil   

[Fixed Price Monthly Code Maintenance and Upgrades for Rails Apps](https://www2.reinteractive.com/CodeCare-rails-maintenance) 

reinteractive Pty Ltd sponsor   

[Moneta 1.6.0: A Unified Interface to Key/Value Stores](https://github.com/moneta-rb/moneta) — Supports a variety of systems (about 20 in all – including Redis, Memcached, SQLite, a simple in memory store, PStore, and even Active Record) and aims to offer consistent behavior across them with full configuration of the serialization process and atomic operations. 

Mendler, Katz, and Pharo   

[Railsochrome: Print Logs from Ruby in the Chrome Console](https://github.com/railsjazz/railsochrome) — Billed as an ‘experimental’ solution for now, it relies upon a browser extension to let your Ruby/Rails app pass things into Chrome. 

Igot Kasyanchuk   

[Prosopite: Rails N+1 Query Auto-Detection with Zero False Positives](https://github.com/charkost/prosopite) — A library that monitors SQL queries and looks for various patterns that imply N+1 queries are going on. 

Mpampis Kostas   

- [puffing-billy 3.1](https://github.com/oesmith/puffing-billy) – Rewriting web proxy that's _"like webmock or VCR, but for your browser."_
- [Ancestry 4.3](https://github.com/stefankroes/ancestry)
 ↳ Organize AR model into a tree structure.
- [Net::SSH 7.1](https://github.com/net-ssh/net-ssh)
 ↳ Pure Ruby SSH client implementation.
- [Invisible Captcha 2.1](https://github.com/markets/invisible_captcha)
 ↳ Unobtrusive protection for Rails apps.
- [Premailer 1.20](https://github.com/premailer/premailer)
 ↳ CSS inlining for HTML email.
- [Flatware 2.1](https://github.com/briandunn/flatware)
 ↳ Parallel test runner for RSpec.
- [pg_lock 1.0](https://github.com/heroku/pg_lock)
 ↳ Use Postgres advisory locks to isolate code execution.
- [Statesman 10.1](https://github.com/gocardless/statesman)
 ↳ Opinionated state machine library.
- [SidekiqUniqueJobs 8.0.2](https://github.com/mhenrixon/sidekiq-unique-jobs)
 ↳ Prevents duplicate Sidekiq jobs.
- [Avo 2.28](https://github.com/avo-hq/avo)
 ↳ Admin panel framework for Rails.    

Jobs  

[Software Engineer (Backend)](https://jobs.ashbyhq.com/stickermule/477eed3e-4aae-46e6-a8ab-0646dbfb11cd?utm_source=Cooperpress) — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers. 
Sticker Mule   

[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     

😍 More Good Performance News..  

Good news for Ruby performance [continues to roll in](https://twitter.com/Love2Code/status/1635657476619091974).  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hzpdu84qy0mgauan8wjv.jpg)](https://twitter.com/Love2Code/status/1635657476619091974)        

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