Skip to content

Commit 65c4858

Browse files
committed
Removed rabl, actual working ab_test and finished routes
1 parent 1656f50 commit 65c4858

6 files changed

Lines changed: 57 additions & 20 deletions

File tree

Readme.mdown

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,15 @@ The split gem and its dependencies.
1212

1313
## Usage
1414

15-
tbc
15+
TODO
16+
17+
## TODO
18+
19+
Javascript library for communicating with api
20+
21+
## Session sharing
22+
23+
*note to be added about sharing sessions between apps*
1624

1725
## Development
1826

lib/split/api.rb

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
require 'sinatra/base'
22
require 'split'
3-
require 'rabl'
4-
require 'active_support/core_ext'
5-
require 'active_support/inflector'
6-
require 'builder'
3+
require 'json'
74

85
module Split
96
class API < Sinatra::Base
10-
Rabl.register!
11-
dir = File.dirname(File.expand_path(__FILE__))
7+
enable :sessions
8+
helpers Split::Helper
129

13-
set :views, "#{dir}/api/views"
10+
get '/ab_test' do
11+
experiment = params[:experiment]
12+
control = params[:control]
13+
alternatives = params[:alternatives]
14+
alternative = ab_test(experiment, control, alternatives)
15+
{:alternative => alternative}.to_json
16+
end
1417

15-
get '/experiments.json' do
16-
@experiments = Split::Experiment.all
17-
render :rabl, :index, :format => :json
18+
post '/finished' do
19+
experiment = params[:experiment]
20+
finished(experiment)
21+
200
1822
end
1923
end
2024
end

lib/split/api/views/index.rabl

Lines changed: 0 additions & 2 deletions
This file was deleted.

spec/api_spec.rb

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,29 @@
1-
require 'spec_helper'
1+
require 'spec_helper'
2+
3+
describe Split::API do
4+
include Rack::Test::Methods
5+
6+
def app
7+
@app ||= Split::API
8+
end
9+
10+
before(:each) { Split.redis.flushall }
11+
12+
describe '/ab_test' do
13+
it "should respond" do
14+
get '/ab_test', :experiment => 'text_color', :control => 'red', :alternatives => 'blue'
15+
last_response.should be_ok
16+
end
17+
18+
it 'should set the correct session variable'
19+
end
20+
21+
describe '/finished' do
22+
it "should respond" do
23+
post '/finished', :experiment => 'text_color'
24+
last_response.should be_ok
25+
end
26+
27+
it 'should handle having an empty session'
28+
end
29+
end

spec/spec_helper.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
ENV['RACK_ENV'] = "test"
2+
13
require 'rubygems'
24
require 'bundler/setup'
3-
require 'split'
45
require 'split/api'
6+
require 'rack/test'

split-api.gemspec

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,10 @@ Gem::Specification.new do |gem|
1515
gem.version = Split::Api::VERSION
1616

1717
gem.add_dependency 'split'
18-
gem.add_dependency 'rabl'
1918
gem.add_dependency 'sinatra'
20-
gem.add_dependency 'activesupport'
21-
gem.add_dependency 'builder'
22-
gem.add_dependency 'i18n'
19+
gem.add_dependency 'json'
2320

2421
gem.add_development_dependency 'bundler', '~> 1.0'
2522
gem.add_development_dependency 'rspec', '~> 2.6'
26-
gem.add_development_dependency 'guard-rspec', '~> 0.4'
23+
gem.add_development_dependency 'rack-test', '~> 0.6'
2724
end

0 commit comments

Comments
 (0)