Module: Bandit::ControllerConcerns

Extended by:
ActiveSupport::Concern
Defined in:
lib/bandit/extensions/controller_concerns.rb

Instance Method Summary collapse

Instance Method Details

#bandit_convert!(exp, alt = nil, count = 1) ⇒ Object

default convert is a session based conversion



8
9
10
# File 'lib/bandit/extensions/controller_concerns.rb', line 8

def bandit_convert!(exp, alt=nil, count=1)
  bandit_session_convert!(exp, alt, count)
end

#bandit_session_convert!(exp, alt = nil, count = 1) ⇒ Object

expects a session cookie, deletes it, will convert again



18
19
20
21
22
23
24
25
26
# File 'lib/bandit/extensions/controller_concerns.rb', line 18

def bandit_session_convert!(exp, alt=nil, count=1)
  cookiename = "bandit_#{exp}".intern
  cookiename_converted = "bandit_#{exp}_converted".intern
  alt ||= cookies.signed[cookiename]
  unless alt.nil? or cookies.signed[cookiename_converted]
    Bandit.get_experiment(exp).convert!(alt, count)
    cookies.delete(cookiename)
  end
end

#bandit_simple_convert!(exp, alt, count = 1) ⇒ Object

look mum, no cookies



13
14
15
# File 'lib/bandit/extensions/controller_concerns.rb', line 13

def bandit_simple_convert!(exp, alt, count=1)
  Bandit.get_experiment(exp).convert!(alt, count)
end

#bandit_sticky_convert!(exp, alt = nil, count = 1) ⇒ Object

creates a _converted cookie, prevents multiple conversions



29
30
31
32
33
34
35
36
37
# File 'lib/bandit/extensions/controller_concerns.rb', line 29

def bandit_sticky_convert!(exp, alt=nil, count=1)
  cookiename = "bandit_#{exp}".intern
  cookiename_converted = "bandit_#{exp}_converted".intern
  alt ||= cookies.signed[cookiename]
  unless alt.nil? or cookies.signed[cookiename_converted]
    cookies.permanent.signed[cookiename_converted] = "true"
    Bandit.get_experiment(exp).convert!(alt, count)
  end
end