class GovukAbTesting::AbTest

Attributes

ab_test_name[R]
allowed_variants[R]
control_variant[R]
dimension[R]
name[R]

Public Class Methods

new(ab_test_name, dimension:, allowed_variants: %w[A B], control_variant: "A") click to toggle source

@param request [String] the name of the A/B test @param dimension [Integer] the dimension registered with Google Analytics for this specific A/B test @param allowed_variants [Array] an array of Strings representing the possible variants @param control_variant [String] the control variant (typically 'A')

# File lib/govuk_ab_testing/ab_test.rb, line 16
def initialize(ab_test_name, dimension:, allowed_variants: %w[A B], control_variant: "A")
  @ab_test_name = ab_test_name
  @dimension = dimension
  @allowed_variants = allowed_variants
  @control_variant = control_variant
end

Public Instance Methods

meta_tag_name() click to toggle source
# File lib/govuk_ab_testing/ab_test.rb, line 38
def meta_tag_name
  ab_test_name
end
request_header() click to toggle source

Internal name of the header

# File lib/govuk_ab_testing/ab_test.rb, line 30
def request_header
  "HTTP_GOVUK_ABTEST_#{ab_test_name.upcase}"
end
requested_variant(request_headers) click to toggle source

@param request [ActionDispatch::Http::Headers] the `request.headers` in the controller.

# File lib/govuk_ab_testing/ab_test.rb, line 25
def requested_variant(request_headers)
  RequestedVariant.new(self, request_headers, @dimension)
end
response_header() click to toggle source
# File lib/govuk_ab_testing/ab_test.rb, line 34
def response_header
  "GOVUK-ABTest-#{meta_tag_name}"
end