Sha256: 5b47bf88f365600d0bc9db058cc97dcbdc3700ae6947e01a09c074f0bbba5417

Contents?: true

Size: 709 Bytes

Versions: 25

Compression:

Stored size: 709 Bytes

Contents

class TestTrack::Assignment
  include TestTrack::RequiredOptions

  attr_accessor :context
  attr_reader :visitor, :split_name
  attr_writer :variant

  def initialize(opts = {})
    @visitor = require_option!(opts, :visitor)
    @split_name = require_option!(opts, :split_name).to_s
    raise ArgumentError, "unknown opts: #{opts.keys.to_sentence}" if opts.present?
  end

  def variant
    @variant ||= _variant
  end

  def unsynced?
    true
  end

  def feature_gate?
    split_name.end_with?('_enabled')
  end

  private

  def _variant
    return if visitor.offline?
    variant = TestTrack::VariantCalculator.new(visitor: visitor, split_name: split_name).variant
    variant && variant.to_s
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
test_track_rails_client-4.0.0.alpha13 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha12 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha11 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha10 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha9 app/models/test_track/assignment.rb