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.alpha33 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha32 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha31 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha30 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha29 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha28 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha27 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha26 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha25 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha24 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha23 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha22 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha21 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha20 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha19 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha18 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha17 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha16 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha15 app/models/test_track/assignment.rb
test_track_rails_client-4.0.0.alpha14 app/models/test_track/assignment.rb