lib/split/user.rb in split-3.3.2 vs lib/split/user.rb in split-3.4.0

- old
+ new

@@ -1,25 +1,29 @@ +# frozen_string_literal: true require 'forwardable' module Split class User extend Forwardable def_delegators :@user, :keys, :[], :[]=, :delete attr_reader :user def initialize(context, adapter=nil) @user = adapter || Split::Persistence.adapter.new(context) + @cleaned_up = false end def cleanup_old_experiments! + return if @cleaned_up keys_without_finished(user.keys).each do |key| experiment = ExperimentCatalog.find key_without_version(key) if experiment.nil? || experiment.has_winner? || experiment.start_time.nil? user.delete key user.delete Experiment.finished_key(key) end end + @cleaned_up = true end def max_experiments_reached?(experiment_key) if Split.configuration.allow_multiple_experiments == 'control' experiments = active_experiments @@ -36,10 +40,10 @@ keys_without_experiment(keys, experiment.key).each { |key| user.delete(key) } end def active_experiments experiment_pairs = {} - user.keys.each do |key| + keys_without_finished(user.keys).each do |key| Metric.possible_experiments(key_without_version(key)).each do |experiment| if !experiment.has_winner? experiment_pairs[key_without_version(key)] = user[key] end end