I recently enjoyed debugging a Cucumber step that tried to be retryable using a patiently block: Then /^"([^"]*)" should( not)? be...

When an object is created / updated, various callbacks are executed in this order: before_validation after_validation before_save

makandra dev
ruby-doc.org

TLDR if you define a equality method for a class you must also implement def hash. Ruby has a lot...

makandra dev

Timecop is a great gem to set the current time in tests. However, it is easy to introduce flakyness to...

makandra dev

In a Jasmine spec you want to spy on a function that is imported by the code under test. This...

We usually rely on VCR and WebMock to prevent any real network connection when running our unit tests.

Usually, Unpoly compiler destructors are returned from the compiler function. However, when using async compiler functions, you can not register...

In esbuild, you usually import other files using relative paths: import './some-related-module' import `../../utils/some-utility-module` import `../../../css/some-css.sass` This is totally fine...

tl;dr You should decouple migrations from models by embedding models into the migration. To use STI in this scenario...

As a developer you may have many tools watching your project for changes: Your IDE, Webpack, Guard, etc. This is...

Jasmine specs for the frontend often need some DOM elements to work with. Because creating them is such a common...

Jasmine specs that work with DOM elements often leave elements in the DOM after they're done. This will leak...

tl;dr In Chrome DevTools in the Layouts tab you have handy options to debug CSS Flexbox and Grid. Including...

drafts.csswg.org

While in CSS zero is usually referenced without specifying a unit (e.g. padding: 0), you must not use a unitless...

Large Rails projects tend to define multiple custom ways to format Dates or DateTimes. This often leads to duplicated format...

TLDR: sass >= 1.35.0 has the option quietDeps and silenceDeprecations to silence deprecation warnings from dependencies. quietDeps: If true, the compiler...

tl;dr In Chrome DevTools in the Sources tab you can activate Event Listener Breakpoints for debugging events. Example

tl;dr In Chrome DevTools in the Elements tab or in Firefox in the Inspector tab you can right click...

tl;dr In the Elements tab in the Chrome DevTools you can right click on an element and select Store...

github.com

ActiveType::Object inherits from ActiveRecod::Base and is designed to behave like an ActiveRecord Object, just without the database...

If you're experiencing that your bundle install command fails with an error message like this, rubygems.org might...

Unpoly's [up-observe], [up-autosubmit] and [up-validate] as well as their programmatic variants up.observe() and up.autosubmit...

tl;dr Since Rails 7+ you can use ComparisonValidator for validations like greater_than, less_than, etc. on dates, numerics...

You can use ETags to allow clients to use cached responses, if your application would send the same contents as...