Rails 7.1 added the normalizes method which can be used to normalize user input. It lets you define the fields...
Canonical does not ship Ubuntu 24.04+ Vagrant images due to HashiCorps switch to the Business Source License (BSL). There is...
When using Rails credentials, you will edit the encrypted credentials for staging or production environments from time to time. To...
Slow test suites are a major pain point in projects, often due to RSpec and FactoryBot. Although minitest and fixtures...
While the main goal always is to prevent long-running queries in the first place, automatic timeouts can serve as...
This talk shows simple and advanced usages of the ruby/debug debugger. It goes through a step by step debugging workflow...
The ActiveSupport::BroadcastLogger allows you to log to multiple sinks. You know this behavior from from the rails server command...
Starting with ChromeDriver 127, if your application displays a beforeunload confirmation dialog, ChromeDriver will immediately close it. In consequence, any...
I recently stumbled upon the Rails feature composed_of. One of our applications dealt with a lot of addresses and...
You can improve your LIKE / ILIKE search queries in PostgreSQL by adding a GIN index with an operate class ("opclass...
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...
It's possible to implement simple custom RuboCop cops with very little code. They work exactly the same like existing...
You are given two CSS selectors that you do not control. How can you build a new selector that matches...
Reacting on a class getting added can be done with a mutation observer. Example: const items = document.querySelectorAll('.item') const expectedClass...
The Visual Viewport API enables developers to access the actually visible area of the page. This differs from the normal...
sudo gitlab-rails console Note This takes some minutes to start Send a mail Use the following...
There are different kind of memory measurement metrics in Linux. These are the differences: Code Name Description vsz virtual memory...
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...