module ServerEngine::ConfigLoader

Attributes

config[R]
logger[RW]

Public Class Methods

new(load_config_proc={}, &block) click to toggle source
# File lib/serverengine/config_loader.rb, line 23
def initialize(load_config_proc={}, &block)
  if block
    @load_config_proc = block
  else
    if load_config_proc.is_a?(Hash)
      @load_config_proc = lambda { load_config_proc }
    else
      @load_config_proc = load_config_proc
    end
  end

  @logger = nil

  reload_config
end

Public Instance Methods

reload_config() click to toggle source
# File lib/serverengine/config_loader.rb, line 42
def reload_config
  @config = @load_config_proc.call

  @logger_class = @config[:logger_class] || DaemonLogger

  if @logger
    logdev = logdev_from_config(@config)
    unless logdev.is_a?(IO)
      # Here doesn't allow to change logdev to IO dynamically
      # because Server#start_io_logging_thread can't follow it.
      @logger.logdev = logdev
    end
    @logger.level = @config[:log_level] || 'debug'
  end

  nil
end

Private Instance Methods

create_logger() click to toggle source
# File lib/serverengine/config_loader.rb, line 62
def create_logger
  if logger = @config[:logger]
    @logger = logger
  else
    @logger = @logger_class.new(logdev_from_config(@config), @config)
  end
end
logdev_from_config(config) click to toggle source
# File lib/serverengine/config_loader.rb, line 70
def logdev_from_config(config)
  case c = @config[:log]
  when nil  # default
    return STDERR
  when "-"
    return STDOUT
  else
    return c
  end
end