At makandra, we've built a few gems over the years. Some of these are quite popular: spreewald (> 1M downloads...
When you receive a ZIP file from a Windows user, umlauts and other non-latin1 characters in filenames may look...
Having a unique selector for an element is useful to later select it from JavaScript or to update a fragment...
Option 1: JSON dump In config/webpack/environment.js you can get inspect environment which includes all webpack config options set for the...
Why secure-only cookies used to be necessary Cookies have an optional secure flag. It tells the browser to not...
The linked article lists a number of techniques that were best practices with ES5, but have better alternatives in modern...
The 90s are calling: they want their tables back. Unfortunately, you need them all for laying out your HTML emails...
When you need to store structured data (like Ruby hashes) in a single database column with ActiveRecord, a simple way...
Authentication is a special part of web applications. On the one hand, it usually is a crucial security mechanism restrict...
RSpec let's you chain a matcher with .or. The expectation will then pass if at least one matcher matches...
There is a kinda secret, yet well supported CSS feature called currentColor. It's like a special CSS variable that...
A matcher is a function that returns an object with a compare key. Usually it is registered with beforeEach...
For outputting a given String in HTML, you mostly want to replace line breaks with or tags.
Sometimes, the IRB prints a warning during boot: irb: warn: can't alias source from irb_source. Explanation
CarrierWave comes with some RSpec matchers which will make testing more comfortable. Let's say you have an Uploader like...
Recent Bundler (1.16.1) started complaining about missing dependencies in the Gemfile. This is due to a stricter handling of specifications...
For applications coming with lots of stylesheets and scripts, asset compilation might take quite long. This can be annoying when...
If the argument list is the same every time: expect(object).to receive(:foo).with('argument').and_return('response 1...
When you find yourself constantly ignoring a RubyMine warning, you can simple disable that warning and de-clutter your editor...
Rails offers a way to prepend (or append) view paths for the current request. This way, you can make the...
Form fields can be rendered as noneditable by setting the disabled or the readonly attribute. Be aware of the differences...
Use bundler > 1.15 to fix Gem::LOADED_SPECS_MUTEX (NameError). Given the following project: ruby -v ruby 1.8.7
Here is how to use Chromedriver without libraries like selenium-webdriver. This can be useful for debugging. The following example...
When flagging a spec that will be implemented later as pending, include a failing spec body or RSpec 3 will...