abongo 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/abongo/version.rb +1 -1
- data/lib/abongo/version.rb~ +1 -1
- data/lib/abongo/view_helper.rb +1 -1
- data/lib/abongo/view_helper.rb~ +79 -0
- metadata +4 -3
data/lib/abongo/version.rb
CHANGED
data/lib/abongo/version.rb~
CHANGED
data/lib/abongo/view_helper.rb
CHANGED
@@ -71,7 +71,7 @@ class Abongo
|
|
71
71
|
if (style == :prototype)
|
72
72
|
script = "var a=Math.floor(Math.random()*11); var b=Math.floor(Math.random()*11);var x=new Ajax.Request('#{url}', {parameters:{a: a, b: b, c: a+b}})"
|
73
73
|
elsif (style == :jquery)
|
74
|
-
script = "var a=Math.floor(Math.random()*11); var b=Math.floor(Math.random()*11);var x=jQuery.post('#{url}', {a: a, b: b, c: a+b})"
|
74
|
+
script = "jQuery(document).ready(function(){var a=Math.floor(Math.random()*11); var b=Math.floor(Math.random()*11);var x=jQuery.post('#{url}', {a: a, b: b, c: a+b})});"
|
75
75
|
end
|
76
76
|
script.nil? ? "" : %Q|<script type="text/javascript">#{script}</script>|.html_safe
|
77
77
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
#Gives you easy syntax to use ABongo in your views.
|
2
|
+
|
3
|
+
class Abongo
|
4
|
+
module ViewHelper
|
5
|
+
|
6
|
+
def ab_test(test_name, alternatives = nil, options = {}, &block)
|
7
|
+
@choices ||= {}
|
8
|
+
unless @choices[test_name]
|
9
|
+
if (Abongo.options[:enable_specification] && !params[test_name].nil?)
|
10
|
+
@choices[test_name] = params[test_name]
|
11
|
+
elsif (Abongo.options[:enable_override_in_session] && !session[test_name].nil?)
|
12
|
+
@choices[test_name] = session[test_name]
|
13
|
+
elsif (Abongo.options[:enable_selection] && !params[test_name].nil?)
|
14
|
+
@choices[test_name] = Abongo.parse_alternatives(alternatives)[params[test_name].to_i]
|
15
|
+
elsif (alternatives.nil?)
|
16
|
+
begin
|
17
|
+
@choices[test_name] = Abongo.flip(test_name, options)
|
18
|
+
rescue
|
19
|
+
if Abongo.options[:failsafe]
|
20
|
+
@choices[test_name] = true
|
21
|
+
else
|
22
|
+
raise
|
23
|
+
end
|
24
|
+
end
|
25
|
+
else
|
26
|
+
begin
|
27
|
+
@choices[test_name] = Abongo.test(test_name, alternatives, options)
|
28
|
+
rescue
|
29
|
+
if Abongo.options[:failsafe]
|
30
|
+
@choices[test_name] = Abongo.parse_alternatives(alternatives).first
|
31
|
+
else
|
32
|
+
raise
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
if block
|
39
|
+
content_tag = capture(@choices[test_name], &block)
|
40
|
+
Rails::VERSION::MAJOR <= 2 && block_called_from_erb?(block) ? concat(content_tag) : content_tag
|
41
|
+
else
|
42
|
+
@choices[test_name]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def bongo!(test_name, options = {})
|
47
|
+
begin
|
48
|
+
Abongo.bongo!(test_name, options)
|
49
|
+
rescue
|
50
|
+
if Abongo.options[:failsafe]
|
51
|
+
return
|
52
|
+
else
|
53
|
+
raise
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
#This causes an AJAX post against the URL. That URL should call Abongo.human!
|
59
|
+
#This guarantees that anyone calling Abongo.human! is capable of at least minimal Javascript execution, and thus is (probably) not a robot.
|
60
|
+
def include_humanizing_javascript(url = "/abongo_mark_human", style = :prototype)
|
61
|
+
begin
|
62
|
+
return if Abongo.is_human?
|
63
|
+
rescue
|
64
|
+
if Abongo.options[:failsafe]
|
65
|
+
else
|
66
|
+
raise
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
script = nil
|
71
|
+
if (style == :prototype)
|
72
|
+
script = "var a=Math.floor(Math.random()*11); var b=Math.floor(Math.random()*11);var x=new Ajax.Request('#{url}', {parameters:{a: a, b: b, c: a+b}})"
|
73
|
+
elsif (style == :jquery)
|
74
|
+
script = "var a=Math.floor(Math.random()*11); var b=Math.floor(Math.random()*11);var x=jQuery.post('#{url}', {a: a, b: b, c: a+b})"
|
75
|
+
end
|
76
|
+
script.nil? ? "" : %Q|<script type="text/javascript">#{script}</script>|.html_safe
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 8
|
9
|
+
version: 1.0.8
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Michael Fairley
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-
|
17
|
+
date: 2011-05-20 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -59,6 +59,7 @@ files:
|
|
59
59
|
- lib/abongo/version.rb
|
60
60
|
- lib/abongo/version.rb~
|
61
61
|
- lib/abongo/view_helper.rb
|
62
|
+
- lib/abongo/view_helper.rb~
|
62
63
|
- lib/abongo/views/dashboard/_experiment.html.erb
|
63
64
|
- lib/abongo/views/dashboard/_experiment.html.erb~
|
64
65
|
- lib/abongo/views/dashboard/index.html.erb
|