The Ruby and Rails community linklog
Made a library? Written a blog post? Found a useful tutorial? Share it with the Ruby community here or just enjoy what everyone else has found!
Submit a post
Post Preview
Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.
Rails 7 allows setting cache expiry, as an absolute timestamp
Rails caching has always had an expires_in method, which allows us to set cache expiry in relative time. [more inside]
Benry-recorder gem records method calls
Benry-recorder gem 1.0.0 released, a tiny utility to record method calls. It can also define fake methods and create create fake object. https://github.com/kwatch/benry-ruby/tree/ruby/benry-recorder
Using ActiveRecord's #update_counters to Prevent Race Conditions
Race conditions are arguably the most insidious kind of bug; they’re intermittent, subtle, and most likely to occur in production. ActiveRecord’s update_counter
provides us with a convenient way to avoid race conditions when incrementing or decrementing values in the database. In this article, Jonathan Miles shows us how to use it, how it’s implemented, and other approaches to avoiding race conditions.
https://www.honeybadger.io/blog/activerecord-update-counters-race-conditions/
A complete guide to testing routes with RSpec
There are a few reasons why you might want to test the routes of your application, we go into those and how to test the most common routing patterns. [more inside]
Powerful Emacs Snippets
In this post, I documented the process of customizing one of my Ruby snippets to have some code expanded conditionally. I used Emacs, but the general idea may apply to snippet packages of other editors. [more inside]
Analyzing Heroku logs in real time
How an open source tool helps you extract fields and perform aggregations on your Heroku logs. All in real-time, with beautiful, human-readable output.
Conway's Game of Life Glimmer Sample
Glimmer DSL for SWT 4.20.13.11 just shipped with an implementation of Conway’s Game of Life. A simpler version was blogged about many years ago, but it has been enhanced to be canvas-based instead of button-based. [more inside]
[Screencast] Hotwire Turbo Replacing Rails UJS
In this episode, we look at some common functionality that we got with Rails UJS and what it looks like to reimplement these with Hotwire’s Turbo and StimulusJS. https://www.driftingruby.com/episodes/hotwire-turbo-replacing-rails-ujs
Deprecating code in a Rails application
I just shared a quick post on how to add deprecation warnings to a Rails app, and why you might want to, on Everyday Rails. Hope you find it useful!
Glimmer Klondike Solitaire + Canvas Shape Drag & Drop
Glimmer DSL for SWT 4.20.13.x added direct support for Canvas Shape Drag & Drop, which automates drag and drop operations for shapes within a canvas and is used to build the new Klondike Solitaire elaborate sample. [more inside]
BFS and DFS algorithms in Ruby
Check out my post about implementing depth-first search and breadth-first search in Ruby
Webpack ALL The Assets
With the release of Rails 6, Webpack was introduced as the default JavaScript bundler by using the Webpacker gem. We tend to think about Webpack only as a tool to handle JavaScript files, but it can be used to handle all kinds of asset files. This article shows how to create a Rails app that uses only Webpack to handle all the assets, including images, fonts, styles and videos. [more inside]
Open Source Thursdays Expert Session with Rafael França on Aug 5th
Did you always want to get started with contributing to Rails? It can be overwhelming, right? [more inside]
Deploying Rails to AWS Lambda
Lambda is an excellent option for deploying lower-traffic web services when you don’t want to maintain another server and you want easy access to all of AWS’s other services. In this article, Godwin Ekuma shows us step-by-step how to deploy our Rails apps to AWS Lambda. https://www.honeybadger.io/blog/rails-lambda/
Introducing JavaScript and TypeScript client for AnyCable
Vladimir Dementyev from Evil Martians introduces a fresh take on a client library for Rails Action Cable. Implemented in JavaScript and TypeScript, it is intended for the free and pro users of AnyCable, giving them a handful of new features, but is also 100% compatible with vanilla Rails for a more modern, maintainable, and robust client code.
What's new in Polyphony - July 2021 edition
Polyphony is a Ruby gem for creating highly concurrent Ruby apps. Here are the latest updates.
I've made a dependency graph for DRY-RB!
Do you wonder where to start learning DRY-RB? This may help you! [more inside]
Setup Factory Bot in Rails
Link: https://thedevpost.com/blog/setup-factory-bot-in-rails/
How to ignore Bullet in RSpec tests
The Bullet gem is an excellent tool for finding opportunities to improve how you grab data via ActiveRecord. On a recent project, we’ve been running Bullet in our test environment as well as development. It has helped us find some improvements to areas of the app we rarely hit when developing new features. [more inside]
Untangle your code with MORE than service objects! Meet dry-monads
Anyone knows how complex Rails controllers can become. In the new Hanami Mastery episode, I show how to solve it with Service Objects on Steroids. [more inside]
Spina CMS 2.1 – Hotwire ⚡️ Edition
Spina CMS has been rebuilt from scratch using Hotwire, ViewComponent, Tailwind and JSONB. Because of the new document db approach in PostgreSQL, complex pages load a lot faster. Check it out at spinacms.com.
Let's watch a Ruby tech talk together 📺🎉
Do you have hundreds of tech talks sitting on your “Watch Later” list on YouTube… Sounds more like a “Never Watch” list, right? 🙈 [more inside]