---
title: "Sidekiq 7 (beta) and Sinatra 3 (for real)"
publication: "Ruby Weekly"
issue: 622
published_at: "2022-09-29"
canonical_url: "https://rubyweekly.com/issues/622"
---

Plus building nginx modules in Ruby, and if at first (your Ruby code) doesn't succeed, try, try, try again.. |        

#​622 — September 29, 2022 

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

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/rehnx3rb17ndmyxvpo65.jpg)](https://www.phlex.fun/)  

[Phlex: A New Component-Oriented View Framework](https://www.phlex.fun/) — Author Joel Drapper has certainly been putting in the effort since creating Phlex a few months ago. It lets you treat everything on a Web page as a distinct component and manage them all as plain old Ruby objects – the view format itself is also entirely pure Ruby which might remind you of _why’s [Markaby](https://github.com/markaby/markaby) a little! There’s a [ERB to Phlex converter](https://www.phlexing.fun/) you can play with to see how it looks. [GitHub repo](https://github.com/joeldrapper/phlex). 

Joel Drapper   

💡 It's early days, so tutorials are thin on the ground, but [phlex-sinatra](https://github.com/joeldrapper/phlex-sinatra) shows off how to use Phlex from Sinatra which I found instructive. Also, if you're already a [ViewComponent](https://viewcomponent.org/) user, Joel explains [how Phlex is different here](https://github.com/joeldrapper/phlex/discussions/86#discussioncomment-3376572).  [![\](https://copm.s3.amazonaws.com/c80454e7.png)](https://www.honeybadger.io/tour/cron-job-heartbeat-monitoring/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) 

[Is Your App’s Heart Beating?💓](https://www.honeybadger.io/tour/cron-job-heartbeat-monitoring/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) — Remember when your monthly backup failed, or when those customers didn't get billed? How did you find out? Our heartbeat feature monitors critical tasks, so that you'll never miss another silent failure. **When Honeybadger is quiet, life is good****.** 

Honeybadger sponsor   

[Sidekiq 7.0 Beta Now Available](https://www.mikeperham.com/2022/09/27/sidekiq-7.0-beta-now-available/) — Mike has a lot of exclamation points to share with this preview of the next version of Ruby’s most popular background job processing system. The [new features are explained here](https://github.com/mperham/sidekiq/blob/7-0/docs/7.0-Upgrade.md) and include job metrics, being able to _embed_ Sidekiq within another process, a big update to how Sidekiq communicates with Redis, and more. 

Mike Perham   

[Sinatra 3.0 Was Released; Did Anyone Notice?](https://github.com/sinatra/sinatra/blob/master/CHANGELOG.md#300--2022-09-26) — One of Ruby’s most popular and long standing ways to build webapps (and the original inspiration for Node’s _Express_) has had a major update, though it doesn’t seem to be getting discussed _anywhere_ yet (no post on the [official Sinatra blog](https://sinatrarb.com/blog.html) either). We’re still digging into this and will cover it in more depth next week, but.. it’s out! 

Haase, Tomayko, Mizerany et al.   

[Put: A Better Way to Sort Ruby Objects?](https://blog.testdouble.com/talks/2022-09-28-a-better-way-to-sort-ruby-objects/) — The go-to way to sort Ruby objects by complex criteria is Enumerable’s `sort_by` method. The new [Put](https://github.com/testdouble/put) library, however, aims to make such sorting clearer, terser, and `nil`-safe. There’s even [a screencast](https://www.youtube.com/watch?v=nUk-IG_-5R0) showing it off. 

Justin Searls   

**QUICK BITS:** 

- 📕 Long-time Rubyist Richard Schneeman (CodeTriage, Puma) has released [_How to Open Source_](https://www.schneems.com/2022/09/26/my-book-how-to-open-source-launches-today/), a book about the real world process of being a productive open source developer. And if Aaron 'tenderlove' Patterson has given it his seal of approval, you know it's worth a look.
- JetBrains has opened [its latest 'early access program'](https://blog.jetbrains.com/ruby/2022/09/rubymine-2022-3-eap-is-open/) for its (commercial) _RubyMine_IDE.
- Greg Molnar presents [the latest weekly roundup](https://rubyonrails.org/2022/9/23/this-week-in-rails-improved-assert_redirected_to-improved-error-messages-and-more-787f42d0) of minor improvements in Rails edge, plus the [release of Turbo 7.2.0](https://github.com/hotwired/turbo/releases/tag/v7.2.0).  

📖 Articles, Stories & Videos  

[How to Install Ruby in macOS for Local Development](https://snyk.io/blog/how-to-install-ruby-in-mac-os/) — Using system Ruby or `brew install ruby` isn’t the way to go – something like rbenv or RVM will help manage your install better (though I use [asdf](https://github.com/asdf-vm/asdf-ruby), myself). 

Liran Tal   

[Creating Continuous Aggregates with Ruby and Timescale](https://ideia.me/timescale-continuous-aggregates-with-ruby) — Continuous aggregates use materialized views to continuously and incrementally refresh a query so that only data that has changed needs to be computed, not the entire dataset. 

Jônatas Davi Paganini   

[Free eBook: Advanced Database Programming with Rails and Postgres](https://pganalyze.com/ebooks/advanced-database-programming-rails-postgres?utm_source=RubyWeeklySecondary09292022) — Learn about subqueries, materialized views, and custom data types in Postgres & Rails and follow along with our examples. 

pganalyze sponsor   

[Six Ways to Create Enumerated Types in Rails and Postgres](https://www.rubyjobboard.com/blog/2022/07/13/six-amazing-ways-to-create-enumerated-types-in-rails-and-postgres) — If you want to constrain the list of legitimate values for a column, there are a few ways to do it depending on your environment and tolerance for some extra coding. 

Matthew Bellantoni   

[Enabling Remote `ruby/debug` Debugging in Rails 7](https://dev.to/ayushn21/remote-debugging-in-rails-7-49nh) 
Ayush Newatia   

[How to Create and Use an SQL View in a Rails App](https://www.railsjazz.com/blog/how-to-create-and-use-sql-view-in-rails-app) 
Igor Kasyanchuk   

[Shopify's Flexible Framework for Effective Pair Programming](https://shopify.engineering/a-flexible-framework-for-effective-pair-programming) 
Raymond Chung   

[Simplify Your System Debugging by Introducing Event Store Linking](https://blog.arkency.com/simplify-your-system-debugging-by-introducing-event-store-linking/) 
Łukasz Reszkę     

🛠 Code & Tools 

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

[Retriable: A DSL to Retry Failed Code Blocks](https://github.com/kamui/retriable) — Lets failed blocks be retried with randomized exponential backoff time intervals. 

Jack Chu   

[ngx_mruby: A Fast and Efficient nginx Extension Mechanism Using `mruby`](https://github.com/matsumotory/ngx_mruby) — Yes, you can implement nginx modules in Ruby. 

Ryosuke Matsumoto   

[The Developer Experience You Always Wanted for Postgres](https://www.crunchybridge.com/start?utm_source=cprb-brief-0929) 

Crunchy Bridge sponsor   

[Spy: A Simple Opinionated Mocking Framework](https://github.com/ryanong/spy) — Inspired by the Spy mechanism in JavaScript’s _Jasmine_ BDD framework, this is a “smart” mocking framework, so it will raise errors if you mock non-existent methods, don’t match arity, etc. 

Ryan Ong   

- [ViewComponent 2.74](https://github.com/ViewComponent/view_component)
 ↳ Framework for reusable, encapsulated view components.
- [Ridgepole 1.2](https://github.com/ridgepole/ridgepole)
 ↳ Generic DB schema management using the Rails approach.
- [Regexp::Parser 2.6](https://github.com/ammar/regexp_parser)
 ↳ Tokenize, parse, and transform regular expressions.
- [espeak-ruby 1.1](https://github.com/dejan/espeak-ruby)
 ↳ `espeak` and `lame` wrapper for text-to-speech.
- [rspec_junit_formatter 0.6](https://github.com/sj26/rspec_junit_formatter)
 ↳ RSpec results your CI can read
- [minitest-spec-rails 6.2](https://github.com/metaskills/minitest-spec-rails)
 ↳ Make Rails use `MiniTest::Spec`
- [ruby-trello 4.0](https://github.com/jeremytregunna/ruby-trello)
 ↳ Client for the popular Kanban/list service.
- [google_calendar 0.6.5](https://github.com/northworld/google_calendar) – Wrapper around Google's API.
- [Haml 6.0.1](https://github.com/haml/haml/releases/tag/v6.0.1)     

Jobs  

[Serving Podcasts with RoR? ✅](https://podigee.jobs.personio.de/job/820147?_pc=913369) — Join our experienced and friendly team as a Software Developer (f/x/m) and work on a high-traffic RoR app serving a growing industry. 
Podigee GmbH   

[Find Ruby Jobs Through 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=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired           

Curated by Peter 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/).
