class Rox::Core::FlagSetter
Public Class Methods
new(flag_repository, parser, experiment_repository, impression_invoker)
click to toggle source
# File lib/rox/core/entities/flag_setter.rb, line 4 def initialize(flag_repository, parser, experiment_repository, impression_invoker) @flag_repository = flag_repository @parser = parser @experiment_repository = experiment_repository @impression_invoker = impression_invoker @flag_repository.register_flag_added_handler do |string| exp = @experiment_repository.experiment_by_flag(string.name) set_flag_data(string, exp) end end
Public Instance Methods
set_experiments()
click to toggle source
# File lib/rox/core/entities/flag_setter.rb, line 16 def set_experiments flags_with_condition = [] @experiment_repository.all_experiments.each do |exp| exp.flags.each do |flag_name| flag = @flag_repository.flag(flag_name) unless flag.nil? set_flag_data(flag, exp) flags_with_condition << flag_name end end end @flag_repository.all_flags.each do |flag| set_flag_data(flag) unless flags_with_condition.include?(flag.name) end end
set_flag_data(string, experiment = nil)
click to toggle source
# File lib/rox/core/entities/flag_setter.rb, line 34 def set_flag_data(string, experiment = nil) string.set_for_evaluation(@parser, experiment, @impression_invoker) end