Sha256: 6a706fc840186555fa8b964d4f29a46e27738608527fb26a1afb5071a8584658
Contents?: true
Size: 841 Bytes
Versions: 10
Compression:
Stored size: 841 Bytes
Contents
module Split class GoalsCollection def initialize(experiment_name, goals=nil) @experiment_name = experiment_name @goals = goals end def load_from_redis Split.redis.lrange(goals_key, 0, -1) end def load_from_configuration goals = Split.configuration.experiment_for(@experiment_name)[:goals] if goals.nil? goals = [] else goals.flatten end end def save return false if @goals.nil? @goals.reverse.each { |goal| Split.redis.lpush(goals_key, goal) } end def validate! unless @goals.nil? || @goals.kind_of?(Array) raise ArgumentError, 'Goals must be an array' end end def delete Split.redis.del(goals_key) end private def goals_key "#{@experiment_name}:goals" end end end
Version data entries
10 entries across 10 versions & 1 rubygems