---
title: "Rusty gem skeletons with Bundler 2.4"
publication: "Ruby Weekly"
issue: 639
published_at: "2023-02-02"
canonical_url: "https://rubyweekly.com/issues/639"
---

Plus a new beta of the Pickaxe, tenderlove's Ruby internals glossary, and running Twitter from a single server. |        

#​639 — February 2, 2023 

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

Together with [![ButterCMS\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_700,h_100/e_make_transparent/co_white,e_outline:10/h4j9v0v4af8ufqqreqfq.png)](https://buttercms.com/rails-cms/?utm_source=rubyweekly&utm_medium=email&utm_campaign=retirelegacycms#)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/otgvidohcjmnofqkrizf.jpg)](https://bundler.io/blog/2023/01/31/rust-gem-skeleton.html)  

[Generating a Rust Based Gem Skeleton with Bundler](https://bundler.io/blog/2023/01/31/rust-gem-skeleton.html) — Bundler 2.4 (more on that below) can now generate a Rust-oriented skeleton for developing gems by way of a new `--ext=rust` argument. Josef walks through what’s produced here. We look forward to seeing even more Rust powered extensions as time goes by and this will only help. 

Josef Šimánek   

[Bundler 2.4 Released](https://bundler.io/blog/2023/01/31/bundler-v2-4.html) — The new PubGrub resolver algorithm is more than a fantastic name, it’s smarter, faster, and has better error messages. A big release for such a fundamental part of the Ruby experience. 

David Rodríguez et al.   [![\](https://copm.s3.amazonaws.com/ae29e5e2.png)](https://buttercms.com/rails-cms/?utm_source=rubyweekly&utm_medium=email&utm_campaign=retirelegacycms) 

[🧈 Retire your Legacy CMS with ButterCMS](https://buttercms.com/rails-cms/?utm_source=rubyweekly&utm_medium=email&utm_campaign=retirelegacycms) — ButterCMS is your new content backend. We’re SaaS so we host, maintain, and scale the CMS. Enable your marketing team to update website + app content without needing you. Try the #1 rated SaaS Headless CMS for your Ruby app today. Free for 30 days. 

🧈 ButterCMS sponsor   

[Super Standard: How to Add Gem Extensions and Custom Rules to 'Standard Ruby'](https://blog.testdouble.com/posts/2023-01-19-super-standard-adding-gem-extensions-and-custom-rules/) — [Standard](https://github.com/testdouble/standard) aims to be the “one bike shed to rule them all” for Rubocop configuration and, before this release, that shed only came in one size. However, now you can add other tools to the shed, which is nice. 

Justin Searls (Test Double)   

[Ronin 2.0.0: Ruby's Security Research Toolkit](https://ronin-rb.dev/blog/2023/02/01/ronin-2-0-0-finally-released.html) — An ecosystem of projects covering areas as diverse as crafting SQL injections, running exploits, mutating data, making HTTP requests, and performing other vulnerability testing tasks. It has [a great FAQ](https://ronin-rb.dev/faq/) that fleshes out the story more. 

Hal Brodigan et al.   

**QUICK BITS** 

- Aaron 'tenderlove' Patterson has put together a [Ruby Internals Glossary](https://github.com/tenderlove/ruby-glossary) bringing together some of the opaque acronyms he's found in Ruby's source code (e.g. `iseq` or `cfp`) with what they actually mean.
- 📕 Progress has continued to the new Ruby 3.2-oriented _Pickaxe_ book. New lead author Noel Rappin shares [what's new in beta 2.](https://ruby.social/@noelrap/109746691602013781) The actual book [remains available](https://pragprog.com/titles/ruby5/programming-ruby-3-2-5th-edition/) from the _Pragmatic Bookshelf._
- _Azure App Service_ is [ending its Ruby support this April.](https://azure.microsoft.com/en-gb/updates/rubysupport/) The proposed way forward is to migrate your apps to run in custom containers.
- Twitter was originally built on Rails. That's changed over the years, and while there's no Ruby to be seen here, [this post calculating if you _could_ run Twitter off of a single server](https://thume.ca/2023/01/02/one-machine-twitter/) is fun. (I think it was DHH who flagged this one up..)  

📕 Tutorials and Articles 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/gawmoyarndyadupfyue2.jpg)](https://www.honeybadger.io/blog/blazer-business-intelligence-ruby-on-rails/)  

[Basic Business Intelligence on Rails with Blazer](https://www.honeybadger.io/blog/blazer-business-intelligence-ruby-on-rails/) — BI tools are expensive, but Blazer is free and has a lot of nice features, like smart columns, caching, forecasting, and tons of chart types. If you’re just getting started with BI, start here or check out [Blazer's live demo](https://blazer.dokkuapp.com/). 

Ana Nunes da Silva (Honeybadger)   

[On Nested Modules](https://www.akshaykhot.com/ruby-difference-nested-modules-syntax/) — Ruby provides two different ways to define nested modules. This post explains the difference between them and how to decide which one to use. It also explains the `Module.nesting` method which returns the list of modules nested when called. 

Akshay Khot   

[Is Your Ruby App Slow? Time for a Tune Up](https://www.fastruby.io/tune?utm_source=cooperpress&utm_medium=ruby-weekly&utm_campaign=44960&utm_term=speed-up&utm_content=tune-report) 

FastRuby.io | Ruby and Rails Upgrade Services sponsor   

[How to Bundle Assets in a Rails Engine](https://avohq.io/blog/how-to-bundle-assets-in-a-rails-engine) — The author of Avo Admin shares what they’ve learned about including assets cleanly. 

Adrian Marin   

▶[Accessing Named Capturing Groups Outside of a Regex](https://www.youtube.com/watch?v=A21DuZzLy_Y) — Quick tip in a 100 second video. 

RubyCademy   

[Spin Up Your Hanami Apps Easily with Hanamismith](https://hanamimastery.com/episodes/40-hanamismith) — There are a bunch of offerings around templated, preconfigured Rails apps and now there is one for Hanami too. _([Hanami 2.0.3](https://hanamirb.org/blog/2023/02/01/hanami-203/) has just dropped, BTW.)_ 

Seb Wilgosz (Hanami Mastery)   

[How to Set Up Rails, Redis, and Postgres with Docker Compose in 2023](https://medium.com/@gustavoinzunza/rails-redis-pg-with-docker-compose-in-2023-64ebb6d25de1) 
Gustavo Inzunza   

[Fantastic Global Methods in Ruby and Where to Find Them](https://dmitrytsepelev.dev/global-methods-in-ruby) 
Dmitry Tsepelev  

🛠 Code & Tools 

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

[Single Cov 1.8: Actionable Code Coverage](https://github.com/grosser/single_cov) — Catch coverage issues on every test run. 

Michael Grosser   

⭐️ [This Gem is _Mentionable_](https://calebhearth.com/this-gem-is-mentionable) — [Mentionable](https://github.com/calebhearth/mentionable) is a gem that provides support for inbound [Webmentions](https://indieweb.org/Webmention) and microformats in Rails apps, and it’s neat to see a gem author explain their intentions so transparently as in this post. 

Caleb Hearth   

[Will Your Users Be in the Dark the Next Time Your App Is Down? 🤨](https://www.honeybadger.io/tour/status-pages/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) — Our status pages let you report incidents in real time and schedule alerts for planned maintenance. [Check it out](https://www.honeybadger.io/tour/status-pages/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby). 

Honeybadger sponsor   

[pgslice: Postgres Partitioning 'As Easy As Pie'](https://github.com/ankane/pgslice) — A tool that can either generate or generate _and_ execute the required SQL statements to partition either new or existing tables with nothing to install server-side. 

Andrew Kane   

[Groupdate 6.2: A Simple Way to Group Temporal Data](https://github.com/ankane/groupdate) — For example, to group data by day, week, hour, etc. 

Andrew Kane   

- [JRuby 9.3.10](https://www.jruby.org/2023/02/01/jruby-9-3-10-0.html)
 ↳ The 2.6.x compatible branch of Ruby for the JVM.
- [RubyMine 2023.1 EAP2](https://blog.jetbrains.com/ruby/2023/02/the-rubymine-2023-1-eap2/) and [RubyMine 2022.3.2](https://blog.jetbrains.com/ruby/2023/01/rubymine-2022-3-2-is-released/)
 ↳ Popular commercial Ruby IDE.
- [SimpleForm 5.2](https://github.com/heartcombo/simple_form)
 ↳ Forms made easy for Rails.
- [Ruby-GNOME 4.1](https://github.com/ruby-gnome/ruby-gnome)
 ↳ Ruby bindings for the GNOME libraries.
- [acts_as_list 1.1](https://github.com/brendon/acts_as_list)
 ↳ ActiveRecord plugin for lists. ([Changelog.](https://github.com/brendon/acts_as_list/blob/master/CHANGELOG.md#v110---2023-02-01))
- [GoodJob 3.9](https://github.com/bensheldon/good_job)
 ↳ Multithreaded, Postgres-based, ActiveJob backend.   

[Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut](https://shortcut.com/?utm_source=cooperRubyWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter) 

Shortcut (formerly Clubhouse.io) sponsor   

- [Gemstash 2.2](https://github.com/rubygems/gemstash)
 ↳ Ruby gem cache and private gem server.
- [VideoInfo 3.1](https://github.com/thibaudgg/video_info)
 ↳ Get video info from popular video sites.
- [resque-scheduler 4.8](https://github.com/resque/resque-scheduler)
 ↳ Future job scheduling atop Resque.
- [Circuitry 3.5](https://github.com/kapost/circuitry)
 ↳ Decouple Ruby apps using SNS fanout and SQS processing.
- [Asset Sync 2.18](https://github.com/AssetSync/asset_sync)
 ↳ Synchronizes assets between Rails and S3.
- [RubyGems 3.4.6](https://blog.rubygems.org/2023/01/31/3.4.6-released.html)     

Jobs  

[Remote Forever: Ruby on Rails Frontend Engineer](https://bit.ly/JLL-ruby) — We need help creating features and solving issues for our app. Join a small agile Ruby on Rails shop within a Fortune 185 company. 
JLL   

[Backend Engineer (Remote)](https://booqable.com/careers/backend-developer/) — Booqable is a SaaS application for the global rental industry. We are looking for an experienced Backend Engineer. 
Booqable   

[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       

🕰 **ICYMI** _(Some older stuff that may catch your eye...)_ 

- Victor Shepelev goes through [the methods to write in order to have pattern-matching work](https://zverok.space/blog/2022-12-20-pattern-matching.html) and deconstruct objects properly, along with some best practices and gotchas.
- Domhnall Murphy looks at [defining private methods inside Ruby class methods](https://www.vector-logic.com/blog/posts/defining-private-methods-inside-ruby-class-methods) — _definitely an edge case but it shows an eccentricity in Ruby that will likely surprise you_.
- Davide Santangelo explores [the performance implications of using exceptions in Ruby](https://dev.to/daviducolo/performance-of-exception-handling-in-ruby-44ic), sharing some best practices for minimizing their impact.
- Paweł Urbanek shares how to [monitor and fix Postgres database locks](https://pawelurbanek.com/rails-postgresql-locks) in Rails with some help from [Rails PG Extras.](https://github.com/pawurb/rails-pg-extras)         

Curated by [Peter Cooper](https://x86.social/@cooper) 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/).
