Sixpack
Ruby client library for SeatGeek's Sixpack ab testing framework.
Installation
Add this line to your application's Gemfile:
gem 'sixpack-client'
And then execute:
$ bundle
Or install it yourself as:
$ gem install sixpack-client
Usage
Basic example:
require 'sixpack'
session = Sixpack::Session.new
# Participate in a test (creates the test if necessary)
resp = session.participate("new-test", ["alternative-1", "alternative-2"])
if resp["alternative"]["name"] == "alternative-1"
css_style = "blue"
end
# Convert
session.convert("new-test")
Each session has a client_id associated with it that must be preserved across requests. Here's what the first request might look like:
session = Sixpack::Session.new
session.participate("new-test", ["alternative-1", "alternative-2"])
("sixpack-id", session.client_id)
For future requests, create the Session using the client_id stored in the cookie:
client_id = ("sixpack-id")
session = Sixpack::Session.new client_id
session.convert("new-test")
Sessions can take an optional options hash that takes :base_url, and a params hash that takes :ip_address, and :user_agent a keys. If you would like to instantiate a session with a known client id, you can do that here. IP address and user agent can be passed to assist in bot detection.
= {
:host => 'http://mysixpacklocation.com',
}
params = {
:ip_address => '1.2.3.4'
}
session = Session(client_id="123", =, params=params)
If Sixpack is unreachable or other errors occur, sixpack-rb will provide the control alternative object.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Write and run some tests with
$ rake - Commit your changes (
git commit -am 'Added some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request