lib/split/trial.rb in split-0.5.0 vs lib/split/trial.rb in split-0.6.0

- old
+ new

@@ -1,43 +1,49 @@ module Split class Trial attr_accessor :experiment - attr_writer :alternative + attr_accessor :goals def initialize(attrs = {}) self.experiment = attrs[:experiment] if !attrs[:experiment].nil? self.alternative = attrs[:alternative] if !attrs[:alternative].nil? - self.alternative_name = attrs[:alternative_name] if !attrs[:alternative_name].nil? + self.goals = attrs[:goals] if !attrs[:goals].nil? end def alternative @alternative ||= if experiment.winner experiment.winner end end def complete! - alternative.increment_completion if alternative + if alternative + if self.goals.empty? + alternative.increment_completion + else + self.goals.each {|g| alternative.increment_completion(g)} + end + end end def choose! choose record! end - + def record! alternative.increment_participation end def choose - if experiment.winner - self.alternative = experiment.winner + self.alternative = experiment.next_alternative + end + + def alternative=(alternative) + @alternative = if alternative.kind_of?(Split::Alternative) + alternative else - self.alternative = experiment.next_alternative + self.experiment.alternatives.find{|a| a.name == alternative } end end - - def alternative_name=(name) - self.alternative= self.experiment.alternatives.find{|a| a.name == name } - end end -end \ No newline at end of file +end