class Hygroscope::ParamSet

Attributes

name[RW]
parameters[R]
path[RW]

Public Class Methods

new(name = nil) click to toggle source
# File lib/hygroscope/paramset.rb, line 11
def initialize(name = nil)
  @parameters = {}
  @path = File.join(Dir.pwd, 'paramsets')

  return unless name

  @name = name
  load!
end

Public Instance Methods

get(key) click to toggle source
# File lib/hygroscope/paramset.rb, line 38
def get(key)
  @parameters[key]
end
load!() click to toggle source
# File lib/hygroscope/paramset.rb, line 21
def load!
  files = Dir.glob(File.join(@path, @name + '.{yml,yaml}'))

  raise Hygroscope::ParamSetNotFoundError if files.empty?

  @file = files.first
  @parameters = YAML.load_file(@file)
end
save!() click to toggle source
# File lib/hygroscope/paramset.rb, line 30
def save!
  # If this is a new paramset, construct a filename
  savefile = @file || File.join(@path, @name + '.yaml')
  File.open(savefile, 'w') do |f|
    YAML.dump(@parameters, f)
  end
end
set(key, value, use_previous_value: false) click to toggle source
# File lib/hygroscope/paramset.rb, line 42
def set(key, value, use_previous_value: false)
  @parameters[key] = if use_previous_value
                       'HYGROSCOPE_USE_PREVIOUS_VALUE'
                     else
                       value
                     end
end