Class: AbPanel::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/ab_panel/config.rb

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



5
6
7
# File 'lib/ab_panel/config.rb', line 5

def initialize
  OpenStruct.new settings
end

Instance Method Details

#experimentsObject



9
10
11
12
# File 'lib/ab_panel/config.rb', line 9

def experiments
  return {} if !settings
  settings.keys.map(&:to_sym)
end

#scenarios(experiment) ⇒ Object

Raises:

  • (ArgumentError)


14
15
16
17
# File 'lib/ab_panel/config.rb', line 14

def scenarios(experiment)
  raise ArgumentError.new( "Fatal: Experiment config not found for #{experiment}" ) unless experiments.include? experiment.to_sym
  ( settings[experiment.to_sym].keys.map(&:to_sym)).uniq
end

#settingsObject



24
25
26
27
28
# File 'lib/ab_panel/config.rb', line 24

def settings
  return @settings if defined?(@settings)
  results = YAML.load(ERB.new(File.read(File.join(Rails.root, 'config', 'ab_panel.yml'))).result)
  @settings = results ? results.symbolize_keys : nil
end

#weights(experiment) ⇒ Object

Raises:

  • (ArgumentError)


19
20
21
22
# File 'lib/ab_panel/config.rb', line 19

def weights(experiment)
  raise ArgumentError.new( "Fatal: Experiment config not found for #{experiment}" ) unless experiments.include? experiment.to_sym
  settings[experiment.to_sym].map { |s| s[1] }
end