-
Testing Ruby Gems with GitHub Actions
Let's walk through how you can use GitHub Actions to test a Ruby gem, or any other Library, against an array of dependencies.
-
Using `yield_self` for composable ActiveRecord relations
On the code-changing magic of `yield_self`.
-
Headless Capybara Feature Specs with Chrome
I've been experimenting with running feature specs using Chrome’s new headless mode. How do we set it up, and how does it compare to Capybara-WebKit?
-
Validation, Database Constraint, or Both?
What happens when we stop using validations for data integrity and instead use them for user interface?
-
Is Your Site Leaking Password Reset Links?
Emailed password reset links are a common part of web applications. Is your site leaking these confidential links to third party sites?
-
My Life with NeoVim
Frustrations with Vim lead me briefly to Emacs and ultimately to experiment with NeoVim.
-
Announcing Scenic - Versioned Database Views for Rails
Database views can improve the performance, composability, and readability of your rails application and Scenic is here to help.
-
One Year Inside The Bike Shed
The Bike Shed isn’t a show about Rails, JavaScript or any particular language or library. At its best, the Bike Shed is a show about the problems we face as developers and interesting ways we tackle them. On our first anniversary, I thought it would be interesting to look at the evolution and future of the show.
-
A Client Project, Two Years Later
I recently had an opportunity to catch up with the developer that took over the first Rails project I worked on for thoughtbot. Here's our discussion on how our choices made early on in the project are suiting them two years later.
-
Have Some (Referential) Integrity with Foreign Keys
What is referential integrity and why is it important to your Rails apps?
-
The Bike Shed
The Bike Shed, hosted by myself and Sean Griffin, joins the thoughtbot podcast family.
-
My Friend Bobby
Everyone has the same Bobby Mac story.
-
A Tour of Rails’ jQuery UJS
What is that
//= require jquery_ujs
line doing in yourapplication.js
file? Let's dive in and find out! -
Better Tests Through Internationalization
Clean up your views and write more resilient tests with internationalization.
-
Implementing Multi-Table Full Text Search with Postgres in Rails
Learn how to use Postgres to build full text search that spans multiple models in your Rails application.
-
The Perils of Uniqueness Validations
Uniqueness validations provide a good user experience in the way of friendly error messages, but they do not prevent duplicate data in any production environment with more than one thread or process.
-
Taming Factory Girl List Creation
If you're not careful, FactoryGirl's
create_list
can easily create well more records than needed for your tests. -
Seamlessly Navigate Vim and tmux Splits
Jump between Vim and tmux splits with a single key combination.
-
Re-enabling Password Pasting
Some misguided web developers have decided pasting passwords should be prohibited. If you want to paste your secure password into one of these annoying web forms, then you've come to the right place.
-
Using rbenv with tmuxinator
Tmuxinator allows for easy configuration of tmux sessions, but it has not yet been updated for use with rbenv. A simple shell function can serve as to bridge the divide.
-
Gemify Assets for Rails
The asset pipeline allows us to depend on versioned external assets via RubyGems, but what happens if the asset you want to use isn't available as a Gem? Let's create an asset gem together!
-
Simple Navigation in Rails
The Simple Navigation gem makes advanced, multi-level navigation schemes simple to implement while maintaining a clear separation of concerns.
-
Upgrading Vim on OS X
The version of Vim that ships with Mac OS X is outdated. There are several rather simple options for updating Vim.
-
Embracing Promiscuous Gemfiles
By removing version constraints from your Gemfile until you have a good reason to add one, the bundle is simple to update and yet still provides equivalent version safety.
-
Using PeepOpen With RubyMine
Replace RubyMine's keyboard-based file navigation with PeepOpen.