From 6bb1f6868fee0b1292b15d9e8e510606cc5acc73 Mon Sep 17 00:00:00 2001 From: Logan Foster Date: Mon, 27 Oct 2025 15:14:09 -0700 Subject: [PATCH 1/2] feat: remove_experiment_override --- lib/evaluator.rb | 4 ++++ lib/statsig.rb | 5 +++++ lib/statsig_driver.rb | 6 ++++++ 3 files changed, 15 insertions(+) diff --git a/lib/evaluator.rb b/lib/evaluator.rb index 797a8c9..eedb0a7 100644 --- a/lib/evaluator.rb +++ b/lib/evaluator.rb @@ -568,6 +568,10 @@ def clear_experiment_overrides @experiment_overrides.clear end + def remove_experiment_override(experiment_name) + @experiment_overrides.delete(experiment_name.to_sym) + end + def eval_spec(config_name, user, config, end_result, is_nested: false) config[:rules].each do |rule| end_result.sampling_rate = rule[:samplingRate] diff --git a/lib/statsig.rb b/lib/statsig.rb index d6c0f22..22a2125 100644 --- a/lib/statsig.rb +++ b/lib/statsig.rb @@ -373,6 +373,11 @@ def self.clear_experiment_overrides @shared_instance&.clear_experiment_overrides end + def self.remove_experiment_override(experiment_name) + ensure_initialized + @shared_instance&.remove_experiment_override(experiment_name) + end + ## # @param [HashTable] debug information log with exposure events def self.set_debug_info(debug_info) diff --git a/lib/statsig_driver.rb b/lib/statsig_driver.rb index bc2ca90..865709f 100644 --- a/lib/statsig_driver.rb +++ b/lib/statsig_driver.rb @@ -338,6 +338,12 @@ def clear_experiment_overrides end end + def remove_experiment_override(experiment_name) + @err_boundary.capture(caller: __method__) do + @evaluator.remove_experiment_override(experiment_name) + end + end + def set_debug_info(debug_info) @err_boundary.capture(caller: __method__) do @logger.set_debug_info(debug_info) From 38c15fdfc2b61783590c780d46b2370700e5c1b5 Mon Sep 17 00:00:00 2001 From: Logan Foster Date: Mon, 27 Oct 2025 15:14:15 -0700 Subject: [PATCH 2/2] add test --- test/local_overrides_test.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/local_overrides_test.rb b/test/local_overrides_test.rb index 4a6eae9..f916a66 100644 --- a/test/local_overrides_test.rb +++ b/test/local_overrides_test.rb @@ -117,6 +117,12 @@ def test_override_experiment_by_group_name assert_equal('LocalOverride', exp.evaluation_details&.reason) assert_equal('2RamGujUou6h2bVNQWhtNZ', exp.rule_id) + Statsig.remove_experiment_override('sample_experiment') + exp = Statsig.get_experiment(user, 'sample_experiment') + assert_equal('Test', exp.group_name) + assert_equal('Bootstrap', exp.evaluation_details&.reason) + assert_equal('2RamGujUou6h2bVNQWhtNZ', exp.rule_id) + exp = Statsig.get_experiment(user, 'sample_experiment', Statsig::GetExperimentOptions.new(ignore_local_overrides: true)) assert_equal('Test', exp.group_name) assert_equal('Bootstrap', exp.evaluation_details&.reason)