class Blackbeard::Context
Attributes
controller[R]
user[R]
Public Class Methods
new(pirate, user, controller = nil)
click to toggle source
# File lib/blackbeard/context.rb, line 8 def initialize(pirate, user, controller = nil) # TODO: remove pirate. access cache via separate cache class @pirate = pirate @controller = controller @user = user if (@user == false) || (@user && guest_method && @user.send(guest_method) == false) @user = nil end end
Public Instance Methods
ab_test(id, options = nil)
click to toggle source
# File lib/blackbeard/context.rb, line 29 def ab_test(id, options = nil) test = @pirate.test(id.to_s) if options.is_a? Hash test.add_variations(options.keys) variation = test.select_variation options[variation.to_sym] else variation = test.select_variation SelectedVariation.new(test, variation) end end
add_to_cohort(id, timestamp = nil, force = false)
click to toggle source
# File lib/blackbeard/context.rb, line 41 def add_to_cohort(id, timestamp = nil, force = false) @pirate.cohort(id.to_s).add(self, timestamp, force) end
add_to_cohort!(id, timestamp = nil)
click to toggle source
# File lib/blackbeard/context.rb, line 45 def add_to_cohort!(id, timestamp = nil) add_to_cohort(id, timestamp, true) end
add_total(id, amount = 1)
click to toggle source
# File lib/blackbeard/context.rb, line 19 def add_total(id, amount = 1) @pirate.metric(:total, id.to_s).add(self, amount) self end
add_unique(id)
click to toggle source
# File lib/blackbeard/context.rb, line 24 def add_unique(id) @pirate.metric(:unique, id.to_s).add(self, 1) self end
feature_active?(id)
click to toggle source
# File lib/blackbeard/context.rb, line 49 def feature_active?(id) @pirate.feature(id.to_s).reload.active_for?(self) end
unique_identifier()
click to toggle source
# File lib/blackbeard/context.rb, line 53 def unique_identifier @unique_identifier ||= @user.nil? ? "b#{visitor_id}" : "a#{@user.id}" end
user_id()
click to toggle source
# File lib/blackbeard/context.rb, line 57 def user_id @user.id end
visitor_id()
click to toggle source
# File lib/blackbeard/context.rb, line 61 def visitor_id @visitor_id ||= controller.request.cookies[:bbd] ||= generate_visitor_id end
Private Instance Methods
generate_visitor_id()
click to toggle source
# File lib/blackbeard/context.rb, line 67 def generate_visitor_id id = db.increment("visitor_id") controller.request.cookies[:bbd] = { :value => id, :expires => Time.now + 31536000 } id end