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
# File 'lib/ab_panel/config.rb', line 9

def experiments
  settings.keys.map(&:to_sym)
end

#scenarios(experiment) ⇒ Object

Raises:

  • (ArgumentError)


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

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



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

def settings
  @settings ||= YAML.load(
    ERB.new(File.read(File.join(Rails.root, 'config', 'ab_panel.yml'))).result)
    .symbolize_keys
end

#weights(experiment) ⇒ Object

Raises:

  • (ArgumentError)


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

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