forked from ryanb/abingo
-
Notifications
You must be signed in to change notification settings - Fork 1
/
abingo_view_helper.rb
42 lines (35 loc) · 1.02 KB
/
abingo_view_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#Gives you easy syntax to use ABingo in your views.
module AbingoViewHelper
def ab_test(test_name, alternatives = nil, options = {})
if (Abingo.options[:enable_specification] && !params[test_name].blank?)
choice = params[test_name]
elsif (alternatives.nil?)
choice = Abingo.flip(test_name)
else
choice = Abingo.test(test_name, alternatives, options)
end
if block_given?
yield(choice)
else
choice
end
end
def ab_test(test_name, alternatives = nil, options = {}, &block)
if (Abingo.options[:enable_specification] && !params[test_name].blank?)
choice = params[test_name]
elsif (alternatives.nil?)
choice = Abingo.flip(test_name)
else
choice = Abingo.test(test_name, alternatives, options)
end
if block
content_tag = capture(choice, &block)
block_called_from_erb?(block) ? concat(content_tag) : content_tag
else
choice
end
end
def bingo!(test_name, options = {})
Abingo.bingo!(test_name, options)
end
end