Sha256: 1a2fbb769ab08b62b452ccab09f5ae6b39db555b636001228bdafcb827b14486
Contents?: true
Size: 1.91 KB
Versions: 4
Compression:
Stored size: 1.91 KB
Contents
module FieldTest module Helpers def field_test(experiment, **options) exp = FieldTest::Experiment.find(experiment) participants = FieldTest::Participant.standardize(options[:participant] || field_test_participant) if try(:request) options = options.dup if !options[:variant] && params[:field_test] && params[:field_test][experiment] && exp.variants.include?(params[:field_test][experiment]) params_variant = params[:field_test][experiment] end if FieldTest.exclude_bots? options[:exclude] = Browser.new(request.user_agent).bot? end options[:exclude] ||= FieldTest.excluded_ips.any? { |ip| ip.include?(request.remote_ip) } options[:ip] = request.remote_ip options[:user_agent] = request.user_agent end # don't update variant when passed via params if params_variant params_variant else # cache results for request # TODO possibly remove in 0.4.0 cache_key = [exp.id, participants.map(&:where_values), options.slice(:variant, :exclude)] @field_test_cache ||= {} @field_test_cache[cache_key] ||= exp.variant(participants, options) end end def field_test_converted(experiment, **options) exp = FieldTest::Experiment.find(experiment) participants = FieldTest::Participant.standardize(options[:participant] || field_test_participant) exp.convert(participants, goal: options[:goal]) end # TODO fetch in single query def field_test_experiments(**options) participants = FieldTest::Participant.standardize(options[:participant] || field_test_participant) experiments = {} participants.each do |participant| FieldTest::Membership.where(participant.where_values).each do |membership| experiments[membership.experiment] ||= membership.variant end end experiments end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
field_test-0.5.1 | lib/field_test/helpers.rb |
field_test-0.5.0 | lib/field_test/helpers.rb |
field_test-0.4.1 | lib/field_test/helpers.rb |
field_test-0.4.0 | lib/field_test/helpers.rb |