Switches lets you turn on and off parts of your code from the commandline. There's a defaults.yml and a current.yml in the background. For example: app/models/user.rb after_create :subscribe_email if Switches.campaign_monitor? >> Switches.campaign_monitor? # => false $ rake switches:on[campaign_monitor] >> Switches.campaign_monitor? # => true $ rake switches:reset # goes back to default.yml $ rake switches:diff # shows diff b/w current.yml and default.yml $ rake s:d # alias for switches:diff $ rake s:c # alias for switches:list_current etc. It's inspired by ActiveSupport's StringInquirer (e.g. Rails.development?) and traditional compile-time assertions.