5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/ab_tests/view_helpers.rb', line 5
def ab_test(test_name, variation_names, unique_identifier, &block)
unique_id_field = AbTests.configuration.unique_identifier
if previous_variation = AbTests::Variation.where(unique_id_field => unique_identifier, test_name: test_name).first and unique_identifier
unless Rails.env.test? return capture(previous_variation.chosen_variation, &block)
else
yield(previous_variation.chosen_variation)
end
end
chosen_variation = variation_names.sample
AbTests::Variation.create(test_name: test_name, chosen_variation: chosen_variation, unique_id_field => unique_identifier)
unless Rails.env.test? return capture(chosen_variation, &block)
else
yield(chosen_variation)
end
end
|