split 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,4 +28,11 @@ describe Split::Persistence::CookieAdapter do
28
28
  end
29
29
  end
30
30
 
31
- end
31
+ it "handles invalid JSON" do
32
+ context.cookies[:split] = { :value => '{"foo":2,', :expires => Time.now }
33
+ subject["my_key"].should be_nil
34
+ subject["my_key"] = "my_value"
35
+ subject["my_key"].should eq("my_value")
36
+ end
37
+
38
+ end
@@ -4,6 +4,7 @@ require 'rubygems'
4
4
  require 'bundler/setup'
5
5
  require 'split'
6
6
  require 'ostruct'
7
+ require 'yaml'
7
8
  require 'complex' if RUBY_VERSION.match(/1\.8/)
8
9
 
9
10
  Dir['./spec/support/*.rb'].each { |f| require f }
@@ -4,7 +4,7 @@ require 'split/trial'
4
4
  describe Split::Trial do
5
5
  it "should be initializeable" do
6
6
  experiment = mock('experiment')
7
- alternative = mock('alternative')
7
+ alternative = mock('alternative', :kind_of? => Split::Alternative)
8
8
  trial = Split::Trial.new(:experiment => experiment, :alternative => alternative)
9
9
  trial.experiment.should == experiment
10
10
  trial.alternative.should == alternative
@@ -12,13 +12,14 @@ describe Split::Trial do
12
12
 
13
13
  describe "alternative" do
14
14
  it "should use the alternative if specified" do
15
- trial = Split::Trial.new(:experiment => experiment = mock('experiment'), :alternative => alternative = mock('alternative'))
15
+ alternative = mock('alternative', :kind_of? => Split::Alternative)
16
+ trial = Split::Trial.new(:experiment => experiment = mock('experiment'), :alternative => alternative)
16
17
  trial.should_not_receive(:choose)
17
18
  trial.alternative.should == alternative
18
19
  end
19
20
 
20
21
  it "should populate alternative with a full alternative object after calling choose" do
21
- experiment = Split::Experiment.new('basket_text', :alternative_names => ['basket', 'cart'])
22
+ experiment = Split::Experiment.new('basket_text', :alternatives => ['basket', 'cart'])
22
23
  experiment.save
23
24
  trial = Split::Trial.new(:experiment => experiment)
24
25
  trial.choose
@@ -27,7 +28,7 @@ describe Split::Trial do
27
28
  end
28
29
 
29
30
  it "should populate an alternative when only one option is offerred" do
30
- experiment = Split::Experiment.new('basket_text', :alternative_names => ['basket'])
31
+ experiment = Split::Experiment.new('basket_text', :alternatives => ['basket'])
31
32
  experiment.save
32
33
  trial = Split::Trial.new(:experiment => experiment)
33
34
  trial.choose
@@ -38,9 +39,10 @@ describe Split::Trial do
38
39
 
39
40
  it "should choose from the available alternatives" do
40
41
  trial = Split::Trial.new(:experiment => experiment = mock('experiment'))
41
- experiment.should_receive(:next_alternative).and_return(alternative = mock('alternative'))
42
+ alternative = mock('alternative', :kind_of? => Split::Alternative)
43
+ experiment.should_receive(:next_alternative).and_return(alternative)
42
44
  alternative.should_receive(:increment_participation)
43
- experiment.should_receive(:winner).and_return nil
45
+ experiment.stub(:winner).and_return nil
44
46
  trial.choose!
45
47
 
46
48
  trial.alternative.should == alternative
@@ -49,10 +51,10 @@ describe Split::Trial do
49
51
 
50
52
  describe "alternative_name" do
51
53
  it "should load the alternative when the alternative name is set" do
52
- experiment = Split::Experiment.new('basket_text', :alternative_names => ['basket', "cart"])
54
+ experiment = Split::Experiment.new('basket_text', :alternatives => ['basket', "cart"])
53
55
  experiment.save
54
56
 
55
- trial = Split::Trial.new(:experiment => experiment, :alternative_name => 'basket')
57
+ trial = Split::Trial.new(:experiment => experiment, :alternative => 'basket')
56
58
  trial.alternative.name.should == 'basket'
57
59
  end
58
60
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
 
25
25
  # Ruby 1.8 doesn't include JSON in the std lib
26
26
  if RUBY_VERSION < "1.9"
27
- s.add_dependency 'json', '>= 1.7.5'
27
+ s.add_dependency 'json', '>= 1.7.7'
28
28
  end
29
29
 
30
30
  s.add_development_dependency 'rake'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: split
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-28 00:00:00.000000000 Z
12
+ date: 2013-04-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis
16
- requirement: &70342380332380 !ruby/object:Gem::Requirement
16
+ requirement: &70363788679740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '2.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70342380332380
24
+ version_requirements: *70363788679740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: redis-namespace
27
- requirement: &70342380331880 !ruby/object:Gem::Requirement
27
+ requirement: &70363788691860 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.1.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70342380331880
35
+ version_requirements: *70363788691860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sinatra
38
- requirement: &70342380331420 !ruby/object:Gem::Requirement
38
+ requirement: &70363788708940 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.2.6
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70342380331420
46
+ version_requirements: *70363788708940
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simple-random
49
- requirement: &70342380331040 !ruby/object:Gem::Requirement
49
+ requirement: &70363788722360 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70342380331040
57
+ version_requirements: *70363788722360
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &70342380330560 !ruby/object:Gem::Requirement
60
+ requirement: &70363788720900 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70342380330560
68
+ version_requirements: *70363788720900
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
- requirement: &70342380330060 !ruby/object:Gem::Requirement
71
+ requirement: &70363788716120 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '1.0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70342380330060
79
+ version_requirements: *70363788716120
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &70342380329560 !ruby/object:Gem::Requirement
82
+ requirement: &70363788729360 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '2.12'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70342380329560
90
+ version_requirements: *70363788729360
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rack-test
93
- requirement: &70342380329100 !ruby/object:Gem::Requirement
93
+ requirement: &70363788751640 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: '0.6'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70342380329100
101
+ version_requirements: *70363788751640
102
102
  description:
103
103
  email:
104
104
  - andrewnez@gmail.com
@@ -126,6 +126,7 @@ files:
126
126
  - lib/split/dashboard/public/reset.css
127
127
  - lib/split/dashboard/public/style.css
128
128
  - lib/split/dashboard/views/_experiment.erb
129
+ - lib/split/dashboard/views/_experiment_with_goal_header.erb
129
130
  - lib/split/dashboard/views/index.erb
130
131
  - lib/split/dashboard/views/layout.erb
131
132
  - lib/split/engine.rb