class Split::GoalsCollection

Public Class Methods

new(experiment_name, goals=nil) click to toggle source
# File lib/split/goals_collection.rb, line 5
def initialize(experiment_name, goals=nil)
  @experiment_name = experiment_name
  @goals = goals
end

Public Instance Methods

delete() click to toggle source
# File lib/split/goals_collection.rb, line 35
def delete
  Split.redis.del(goals_key)
end
load_from_configuration() click to toggle source
# File lib/split/goals_collection.rb, line 14
def load_from_configuration
  goals = Split.configuration.experiment_for(@experiment_name)[:goals]

  if goals.nil?
    goals = []
  else
    goals.flatten
  end
end
load_from_redis() click to toggle source
# File lib/split/goals_collection.rb, line 10
def load_from_redis
  Split.redis.lrange(goals_key, 0, -1)
end
save() click to toggle source
# File lib/split/goals_collection.rb, line 24
def save
  return false if @goals.nil?
  RedisInterface.new.persist_list(goals_key, @goals)
end
validate!() click to toggle source
# File lib/split/goals_collection.rb, line 29
def validate!
  unless @goals.nil? || @goals.kind_of?(Array)
    raise ArgumentError, 'Goals must be an array'
  end
end

Private Instance Methods

goals_key() click to toggle source
# File lib/split/goals_collection.rb, line 41
def goals_key
  "#{@experiment_name}:goals"
end