Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
RolloutUI: A slick way to rollout features in your web app.
Ruby CSS JavaScript
branch: master
Failed to load latest commit information.
lib Release version 0.3.0
spec Porting to rollout 2.0
.gitignore Add functionality to rails 3.1 engine
Gemfile Porting to rollout 2.0
Gemfile.lock
LICENSE Lawyer speak
README.markdown
Rakefile
rollout_ui.gemspec Porting to rollout 2.0

README.markdown

RolloutUI: A slick way to rollout features in your web app.

What does it do?

RolloutUI provides a zero-configuration user interface for James Golick's rollout. RolloutUI auto-detects features defined in rollout in your application. It allows you to release features to groups, users or a percentage of your userbase through a nice interface rather than digging around in the console or modifying redis directly.

It looks something like this:

RolloutUI

Installing RolloutUI

First, get rollout set up and running on your app and define at least one feature.

Then you're ready to use RolloutUI.

Add it to your gemfile:

gem "rollout_ui"

Wrap your rollout instance:

$rollout = Rollout.new($redis)
RolloutUi.wrap($rollout)

Rails 3.1

In your application.rb file, require the rollout engine:

require "rollout_ui/engine"

Mount the Rails engine in your routes.rb file:

mount RolloutUi::Engine => "/rollout"

Other

Run the sinatra app. You can either run it as it's own app, or run it in tandom with other rack apps. Example: using Rack's URLMap in your config.ru:

run Rack::URLMap.new \
  "/" => Your::App.new,
  "/rollout" => RolloutUi::Server.new

Protecting the sinatra app with HTTP basic auth is probably a good idea. Put this somewhere before the URLMap in your config.ru:

RolloutUi::Server.use Rack::Auth::Basic do |username, password|
  username == '<some username>' && password == '<some password>'
end

Resources

Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Send me a pull request.

Thanks

  • Thanks to James Golick for the great rollout gem.
  • Thanks to ChallengePost for sponsoring additional development and supporting open sourcing it from the start.
  • Thanks to Holly Tiwari for the design!
Something went wrong with that request. Please try again.