Module: AbTests::ViewHelpers

Defined in:
lib/ab_tests/view_helpers.rb

Instance Method Summary collapse

Instance Method Details

#ab_test(test_name, variation_names, unique_identifier, &block) ⇒ Object



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? # a block in a rails view
      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? # a block in a rails view
    return capture(chosen_variation, &block)
  else
    yield(chosen_variation)
  end
end