class Shiftly::Config

Constants

DEFAULT_CONFIG

Public Class Methods

default_config() click to toggle source
# File lib/shiftly/config.rb, line 50
def default_config
  deep_dup(DEFAULT_CONFIG)
end
load(file) click to toggle source
# File lib/shiftly/config.rb, line 39
def load(file)
  reset
  data = YAML::load(file.respond_to?(:read) ? file : File.open(file))
  config = (data['shiftly'] || {})

  config_vars = %w(beginning_of_factory_day shift_length number_of_shifts)
  config_vars.each do |var|
    send("#{var}=", config[var]) if config[var] && respond_to?("#{var}=")
  end
end

Private Class Methods

config() click to toggle source
# File lib/shiftly/config.rb, line 14
def config
  Thread.main[:shiftly_config] ||= default_config
end
config=(config) click to toggle source
# File lib/shiftly/config.rb, line 18
def config=(config)
  Thread.main[:shiftly_config] = config
end
deep_dup(object) click to toggle source
# File lib/shiftly/config.rb, line 60
def deep_dup(object)
  Marshal.load(Marshal.dump(object))
end
reset() click to toggle source
# File lib/shiftly/config.rb, line 56
def reset
  self.config = default_config
end
threadsafe_cattr_accessor(name) click to toggle source
# File lib/shiftly/config.rb, line 22
def threadsafe_cattr_accessor(name)
  define_singleton_method name do
    config[name]
  end
  define_singleton_method "#{name}=" do |value|
    config[name] = value
  end
end