When upgrading Rails versions -- especially major versions -- you will run into a lot of unique issues, depending on the exact...
Accessing pseudo elements via JavaScript or jQuery is often painful/impossible. However, accessing their styles is fairly simple. Using getComputedStyle
There are two ways to lock a user in devise. Using the lockable module Customizing the user account status validation...
When you are using lambdas in RSpec to assert certain changes of a call, you know this syntax: expect { playlist.destroy...
Percent Notation We already know that that we can create strings using the percent notation: %(<foo="bar's ton">) is...
Mobile Chrome and Safari support the "web share API" which allow you to use the native share functionality of an...
Geordi uses parallel_tests if available for running the test suite. To debug an application it is very unhandy to...
It is possible to access Rails config (for example secrets) from within your webpack bundles, thanks to rails-erb-loader...
Font Awesome 5 is a comprehensive solution for vector icons on your website. Originally, Font Awesome came as an icon...
There seems to be no built-in matcher in RSpec to check if a string contains terms in the desired...
In this example we assume that not only the storage gem changes but also the file structure on disc.
Masonry is a famous library to dynamically arrange a grid of items that have different aspect ratio, like horizontal and...
For Sidekiq to be able to retry your jobs it has to be able to catch errors that occur while...
A JavaScript error in an E2E test with Selenium will not cause your test to fail. This may cause you...
Geordi's cucumber command has a --rerun option that reruns failing tests the given number of times. Usage: geordi cucumber...
If you use transactional_fixtures or the database_cleaner gem with strategy :transaction, after_commit callbacks will not be fired...
If validations failed for a record, and you want to find out if a specific validation failed, you can leverage...
Let's say you have a gem which has the following module: module SuperClient def self.foo 'Foo' end
Migrating data from a legacy into a new system can be a surprisingly large undertaking. We have done this a...
At makandra, we've built a few gems over the years. Some of these are quite popular: spreewald (> 1M downloads...
Why secure-only cookies used to be necessary Cookies have an optional secure flag. It tells the browser to not...
If you want to fill in textareas with multiple lines of text (containing line breaks / new lines) you can use...
If possible your code should detect features, not browsers. But sometimes you just need to sniff the browser. And when...
When you need to store structured data (like Ruby hashes) in a single database column with ActiveRecord, a simple way...