Rails 7.1 added a new method Rails.env.local?. If you want to stub the Rails env correctly, use ActiveSupport::EnvironmentInquirer like...

Rails' default logger prefixes each log entry with timestamp and tags (like request ID). For multi-line entries, only the...

Recently I needed to benchmark an Active Record query for performance measurements. I wrote a small script that runs each...

Terser is a really good minifier ("compressor") for JavaScript code. I'm often surprised by the thoughtfulness of its compressed...

testing-library are widely used testing utilities libraries for javascript dependent frontend testing. The main utilities provided are query methods...

Rails credentials are a way to store secrets in an encrypted YAML file. Usage is simple: each key in the...

Whenever you have to deal with randomness in a jasmine test there are some spy strategies to help you out...

You are given two CSS selectors that you do not control. How can you build a new selector that matches...

developer.mozilla.org

The Visual Viewport API enables developers to access the actually visible area of the page. This differs from the normal...

stevenhicks.me

Sometimes you want to write a test for a business rule that's based on multiple variables. In your goal...

Sometimes we have to write code that behaves differently based on the version of a specific gem or the Ruby...

I recently stumbled over a quirk in the way Ruby handles local variables that I find somewhat dangerous. Consider:

tl;dr To adjust code templates in RubyMine, navigate to Settings -> Editor -> File and Code Templates. Example You can navigate...

makandra dev
github.com

I was recently asked to optimize the response time of a notoriously slow JSON API endpoint that was backed by...

makandra dev

While most Rails Apps are tied to at least one external REST API, machine-to-machine communication via GraphQL is...

When Rails releases a new version of their gems, they also release a number of npm packages like @rails/activestorage or...

Modern JavaScript includes Intl.NumberFormat to format numbers in different formats and locales. In this card, we describe a wrapper for...

This card shows an uncommon way to retrieve a file using selenium where JavaScript is used to return a binary...

Some rubygems come in platform-specific versions (i.e. "x86_64-linux") in addition to the usual "ruby" platform. This is...

Running gem update --system will install the latest version of RubyGems. However the latest version might not be compatible with...

You might know a few examples, where you configure some library via a block. One example is the Rails configuration...

This cards describes an example with a Github Client on how to keep your Rails application more maintainable by extracting...

This card is a short summary on different ways of assigning multiple attributes to an instance of a class.

Using Capistrano, we usually have some array configurations in the config/deploy.rb file, like set :linked_files, %w[config/database.yml], so in...