class Hackle::Experiment::Running

Attributes

bucket[R]

@!attribute [r] bucket

@return [Bucket]

Public Class Methods

new(id:, key:, bucket:, variations:, overrides:) click to toggle source

@param id [Integer] @param key [Integer] @param bucket [Bucket] @param variations [Hash{String => Variation}] @param overrides [Hash{String => Integer}]

Calls superclass method Hackle::Experiment::new
# File lib/hackle/models/experiment.rb, line 28
def initialize(id:, key:, bucket:, variations:, overrides:)
  super(id: id, key: key)
  @bucket = bucket

  # @type [Hash{String => Variation}]
  @variations = variations

  # @type [Hash{String => Integer}]
  @overrides = overrides
end

Public Instance Methods

get_overridden_variation(user:) click to toggle source

@param user [User] @return [Variation, nil]

# File lib/hackle/models/experiment.rb, line 47
def get_overridden_variation(user:)
  overridden_variation_id = @overrides[user.id]
  return nil if overridden_variation_id.nil?
  get_variation(variation_id: overridden_variation_id)
end
get_variation(variation_id:) click to toggle source

@param variation_id [Integer] @return [Variation, nil]

# File lib/hackle/models/experiment.rb, line 41
def get_variation(variation_id:)
  @variations[variation_id]
end