Search

Introducing Setler for Feature Flags

Chris Kelly

2 min read

Aug 21, 2011

Introducing Setler for Feature Flags

Feature Flags are one of my favorite patterns. Ross at Flickr blogged a pretty good description on the Flickr Code blog in 2009, and a Ruby gem ‘rails-settings’ appeared in 2009 to give Rails developers a “Global Hash” which can be used to implement feature flags. This has been forked by a handful of people, updated to work with Rails 3, adding support for settings associated with models, etc.

However, the official rails-settings gem hasn’t been updated since 2009 and many of the forks are not of an acceptable level of quality for us to use. Some have removed tests, some have lots of backwards compatability code, and most are pretty hard to read. I spoke with some other developers and decided to build a new one from scratch, using rails-settings as the inspiration, so here we are!

Setler is a new from-scratch Gem that allows developers to easily implement the Feature Flags pattern. It uses the same database structure as rails-settings and has a very similar function call interface, so switching over should be pretty easy. I’ll quickly accept good pull requests (that have good tests) and update the Gem, so if you use Setler you can be confident in it keeping up to date with your needs and continuing to provide well-tested new functionality. I’ll also be quick to respond to any bug or feature requests, and if they’re good, they’ll get implemented. So check it out!

While this is all shiny and new, and mostly similar to rails-settings, a few things have been removed. At Highgroove we like being biased towards simplicity so there is no more support for Rails 2 or Ruby 1.8. You’ll need Rails 3 and Ruby 1.9 to use Setler.

Here’s a sampling of some of the things we’ve used Setler for already:

  • Toggle new account creation
  • Toggle non-admin logins
  • Toggle database writes
  • Toggle e-mail sending
  • Toggle performance intensive things
  • Toggle continuously running background jobs on or off (cron / DJ worker on Heroku)

Zack Simon

Reviewer Big Nerd Ranch

Zack is an Experience Director on the Big Nerd Ranch design team and has worked on products for companies ranging from startups to Fortune 100s. Zack is passionate about customer experience strategy, helping designers grow in their career, and sharpening consulting and delivery practices.

Speak with a Nerd

Schedule a call today! Our team of Nerds are ready to help

Let's Talk

Related Posts

We are ready to discuss your needs.

Not applicable? Click here to schedule a call.

Stay in Touch WITH Big Nerd Ranch News