class Uc::Config

Public Class Methods

new(app_dir, config_file = nil) click to toggle source
# File lib/uc/config.rb, line 10
def initialize(app_dir, config_file = nil)
  @config_file = config_file
  @app_dir = app_dir
end

Public Instance Methods

app_dir() click to toggle source
# File lib/uc/config.rb, line 77
def app_dir
  config[:working_dir]
end
backlog(queue_size) click to toggle source
# File lib/uc/config.rb, line 57
def backlog(queue_size)
  config[:queue_size] = queue_size
end
config() click to toggle source
# File lib/uc/config.rb, line 19
def config
  return @config if @config
  @config = {
    instances: 2,
    queue_size: 1024,
    timeout: 30,
    prestart_url: "/",
    working_dir: @app_dir,
    event_queue: "unicorn_#{Process.uid}",
    ready_wait: 5,
    listen: []
  }
  load_env_yml "#{app_dir}/config/env.yml"
  load_env_yml "#{app_dir}/.env.yml"
  read_from_file
  return @config
end
config_file() click to toggle source
# File lib/uc/config.rb, line 15
def config_file
  @config_file ||= "#{app_dir}/config/uc.rb"
end
env_yml(path, required: true) click to toggle source
# File lib/uc/config.rb, line 85
def env_yml(path, required: true)
  load_env_yml(path, required: required)
end
event_queue(event_queue) click to toggle source
# File lib/uc/config.rb, line 73
def event_queue(event_queue)
  config[:event_queue] = event_queue
end
event_queue_name() click to toggle source
# File lib/uc/config.rb, line 49
def event_queue_name
  config[:event_queue]
end
instances(num_instances) click to toggle source
# File lib/uc/config.rb, line 53
def instances(num_instances)
  config[:instances] = num_instances
end
listen(*ports) click to toggle source
# File lib/uc/config.rb, line 41
def listen(*ports)
  config[:listen] = ports
end
load_env() click to toggle source
# File lib/uc/config.rb, line 89
def load_env
  # all environment variables will be loaded on config parsing
  config
end
load_env_yml(path, required: false) click to toggle source
# File lib/uc/config.rb, line 94
def load_env_yml(path, required: false)
  if not File.readable? path
    raise Error, "env file #{path} unreadable" if required
    logger.debug "skipped loading env from #{path}"
    return {}
  end
  logger.debug "loading env from #{path}"
  h = YAML.load_file(path)
  h.each { |k,v| ENV[k] = v.to_s }
rescue => e
  raise Error, "failed to load env from #{path} : #{e.message}" if required
  logger.debug "failed to load env from #{path} : #{e.message}"
end
prestart_url(url) click to toggle source
# File lib/uc/config.rb, line 61
def prestart_url(url)
  config[:prestart_url] = url
end
read_from_file() click to toggle source
# File lib/uc/config.rb, line 108
def read_from_file
  return if not File.readable? config_file
  instance_eval(File.read(config_file))
rescue NoMethodError => e
  logger.warn "invalid option used in config: #{e.name}"
end
ready_wait(wait_timeout) click to toggle source
# File lib/uc/config.rb, line 45
def ready_wait(wait_timeout)
  config[:ready_wait] = wait_timeout.to_i
end
skip_clean_env(value) click to toggle source
# File lib/uc/config.rb, line 81
def skip_clean_env(value)
  config[:skip_clean_env] = value
end
timeout(secs) click to toggle source
# File lib/uc/config.rb, line 65
def timeout(secs)
  config[:timeout] = secs
end
to_h() click to toggle source
# File lib/uc/config.rb, line 37
def to_h
  config
end
working_dir(working_dir) click to toggle source
# File lib/uc/config.rb, line 69
def working_dir(working_dir)
  config[:working_dir] = working_dir
end