Sha256: 5acec967b39c0bbacfe9b27cedd781d3c0d2f0af020a549742e6dc3df96503ca

Contents?: true

Size: 1.33 KB

Versions: 896

Compression:

Stored size: 1.33 KB

Contents

module Caboose
  class AbTesting
    
    @@session_id = nil
    
    # Sets the ab_variants for the user's session
    def self.init(session_id)
      @@session_id = "#{session_id}"
      AbVariant.all.each { |var| self.create_ab_value(var) }
    end
    
    # Ensure that an ab_value exists for the given session and variant 
    def self.create_ab_value(var)      
      if AbValue.where(:session_id => @@session_id, :ab_variant_id => var.id).exists?
        return AbValue.where(:session_id => @@session_id, :ab_variant_id => var.id).first
      end
      return AbValue.create(:session_id => @@session_id, :ab_variant_id => var.id, :ab_option_id  => var.random_option.id)      
    end
   
    # Get this session's ab_value value for the variant with the given analytics name
    def self.[](analytics_name)
      return self.value_for_name(analytics_name)      
    end
 
    def self.value_for_name(analytics_name)
      return nil if !AbVariant.where(:analytics_name => analytics_name).exists?  
      var = AbVariant.where(:analytics_name => analytics_name).first 
      abv = self.create_ab_value(var) 
      return abv.ab_option.value
    end      

    # Get the analytics string
    def self.analytics_string
      arr = AbValue.where(:session_id => @@session_id).all.collect { |abv| abv.keyval }
      return "|#{arr.join('|')}|"
    end
  end
end

Version data entries

896 entries across 896 versions & 1 rubygems

Version Path
caboose-cms-0.9.229 app/models/caboose/ab_testing.rb
caboose-cms-1.0.2 app/models/caboose/ab_testing.rb
caboose-cms-1.0.1 app/models/caboose/ab_testing.rb
caboose-cms-0.9.228 app/models/caboose/ab_testing.rb
caboose-cms-0.9.227 app/models/caboose/ab_testing.rb
caboose-cms-0.9.226 app/models/caboose/ab_testing.rb
caboose-cms-0.9.225 app/models/caboose/ab_testing.rb
caboose-cms-0.9.224 app/models/caboose/ab_testing.rb
caboose-cms-0.9.223 app/models/caboose/ab_testing.rb
caboose-cms-0.9.222 app/models/caboose/ab_testing.rb
caboose-cms-0.9.221 app/models/caboose/ab_testing.rb
caboose-cms-0.9.220 app/models/caboose/ab_testing.rb
caboose-cms-0.9.219 app/models/caboose/ab_testing.rb
caboose-cms-0.9.218 app/models/caboose/ab_testing.rb
caboose-cms-0.9.217 app/models/caboose/ab_testing.rb
caboose-cms-0.9.216 app/models/caboose/ab_testing.rb
caboose-cms-0.9.215 app/models/caboose/ab_testing.rb
caboose-cms-0.9.214 app/models/caboose/ab_testing.rb
caboose-cms-0.9.213 app/models/caboose/ab_testing.rb
caboose-cms-0.9.212 app/models/caboose/ab_testing.rb