lib/split/configuration.rb in split-0.7.3 vs lib/split/configuration.rb in split-0.8.0

- old
+ new

@@ -16,10 +16,11 @@ attr_accessor :on_trial_choose attr_accessor :on_trial_complete attr_accessor :on_experiment_reset attr_accessor :on_experiment_delete attr_accessor :include_rails_helper + attr_accessor :beta_probability_simulations attr_reader :experiments def bots @bots ||= { @@ -83,10 +84,11 @@ # ??? 'DigitalPersona Fingerprint Software' => 'HP Fingerprint scanner', 'ShowyouBot' => 'Showyou iOS app spider', 'ZyBorg' => 'Zyborg? Hmmm....', + 'ELB-HealthChecker' => 'ELB Health Check' } end def experiments= experiments raise InvalidExperimentsFormatError.new('Experiments must be a Hash') unless experiments.respond_to?(:keys) @@ -107,14 +109,16 @@ def metrics return @metrics if defined?(@metrics) @metrics = {} if self.experiments self.experiments.each do |key, value| - metric_name = value_for(value, :metric).to_sym rescue nil - if metric_name - @metrics[metric_name] ||= [] - @metrics[metric_name] << Split::Experiment.new(key) + metrics = value_for(value, :metric) rescue nil + Array(metrics).each do |metric_name| + if metric_name + @metrics[metric_name.to_sym] ||= [] + @metrics[metric_name.to_sym] << Split::Experiment.new(key) + end end end end @metrics end @@ -193,9 +197,10 @@ @enabled = true @experiments = {} @persistence = Split::Persistence::SessionAdapter @algorithm = Split::Algorithms::WeightedSample @include_rails_helper = true + @beta_probability_simulations = 10000 end private def value_for(hash, key)