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