Skip to content

Commit 0dcc853

Browse files
committed
disable cohorting revision
1 parent f9fc878 commit 0dcc853

File tree

3 files changed

+29
-17
lines changed

3 files changed

+29
-17
lines changed

lib/split/dashboard/views/_controls.erb

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1-
<% if experiment.cohorting_disabled? %>
2-
<form action="<%= url "/update_cohorting?experiment=#{experiment.name}" %>" method='post' onclick="return confirmEnableCohorting()">
3-
<input type="hidden" name="cohorting_action" value="enable">
4-
<input type="submit" value="Enable Cohorting" class="green">
5-
</form>
6-
<% else %>
7-
<form action="<%= url "/update_cohorting?experiment=#{experiment.name}" %>" method='post' onclick="return confirmDisableCohorting()">
8-
<input type="hidden" name="cohorting_action" value="disable">
9-
<input type="submit" value="Disable Cohorting" class="red">
10-
</form>
11-
<% end %>
12-
<span class="divider">|</span>
131
<% if experiment.has_winner? %>
142
<form action="<%= url "/reopen?experiment=#{experiment.name}" %>" method='post' onclick="return confirmReopen()">
153
<input type="submit" value="Reopen Experiment">
164
</form>
5+
<% else %>
6+
<% if experiment.cohorting_disabled? %>
7+
<form action="<%= url "/update_cohorting?experiment=#{experiment.name}" %>" method='post' onclick="return confirmEnableCohorting()">
8+
<input type="hidden" name="cohorting_action" value="enable">
9+
<input type="submit" value="Enable Cohorting" class="green">
10+
</form>
11+
<% else %>
12+
<form action="<%= url "/update_cohorting?experiment=#{experiment.name}" %>" method='post' onclick="return confirmDisableCohorting()">
13+
<input type="hidden" name="cohorting_action" value="disable">
14+
<input type="submit" value="Disable Cohorting" class="red">
15+
</form>
16+
<% end %>
1717
<% end %>
18+
<span class="divider">|</span>
1819
<% if experiment.start_time %>
1920
<form action="<%= url "/reset?experiment=#{experiment.name}" %>" method='post' onclick="return confirmReset()">
2021
<input type="submit" value="Reset Data">

lib/split/experiment.rb

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def delete
235235
end
236236
reset_winner
237237
redis.srem(:experiments, name)
238-
redis.hdel(experiment_config_key, :cohorting)
238+
remove_experiment_cohorting
239239
remove_experiment_configuration
240240
Split.configuration.on_experiment_delete.call(self)
241241
increment_version
@@ -389,15 +389,19 @@ def jstring(goal = nil)
389389
end
390390

391391
def cohorting_disabled?
392-
value = redis.hget(experiment_config_key, :cohorting)
393-
value.nil? ? false : value.downcase == "true"
392+
@cohorting_disabled ||= begin
393+
value = redis.hget(experiment_config_key, :cohorting)
394+
value.nil? ? false : value.downcase == "true"
395+
end
394396
end
395397

396398
def disable_cohorting
399+
@cohorting_disabled = true
397400
redis.hset(experiment_config_key, :cohorting, true)
398401
end
399402

400403
def enable_cohorting
404+
@cohorting_disabled = false
401405
redis.hset(experiment_config_key, :cohorting, false)
402406
end
403407

@@ -482,5 +486,10 @@ def experiment_configuration_has_changed?
482486
def goals_collection
483487
Split::GoalsCollection.new(@name, @goals)
484488
end
489+
490+
def remove_experiment_cohorting
491+
@cohorting_disabled = false
492+
redis.hdel(experiment_config_key, :cohorting)
493+
end
485494
end
486495
end

lib/split/trial.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,11 @@ def choose!(context = nil)
8585
end
8686
end
8787

88-
@user[@experiment.key] = alternative.name unless @experiment.has_winner? || !should_store_alternative? || (new_participant && @experiment.cohorting_disabled?)
88+
new_participant_and_cohorting_disabled = new_participant && @experiment.cohorting_disabled?
89+
90+
@user[@experiment.key] = alternative.name unless @experiment.has_winner? || !should_store_alternative? || new_participant_and_cohorting_disabled
8991
@alternative_choosen = true
90-
run_callback context, Split.configuration.on_trial unless @options[:disabled] || Split.configuration.disabled? || (new_participant && @experiment.cohorting_disabled?)
92+
run_callback context, Split.configuration.on_trial unless @options[:disabled] || Split.configuration.disabled? || new_participant_and_cohorting_disabled
9193
alternative
9294
end
9395

0 commit comments

Comments
 (0)