Sha256: 953d900e9481ed35ace36c8d94e7a2d1724a35924340f8aeb14f9abd6ccd56e1
Contents?: true
Size: 927 Bytes
Versions: 22
Compression:
Stored size: 927 Bytes
Contents
require 'yaml' module Kestrel module Config class ConfigNotLoaded < StandardError; end extend self attr_accessor :environment, :config def load(config_file) self.config = YAML.load_file(config_file) end def environment @environment ||= 'development' end def config @config or raise ConfigNotLoaded end def namespace(namespace) client_args_from config[namespace.to_s][environment.to_s] end def default client_args_from config[environment.to_s] end def new_client(space = nil) Client.new *(space ? namespace(space) : default) end alias method_missing namespace private def client_args_from(config) sanitized = config.inject({}) do |sanitized, (key, val)| sanitized[key.to_sym] = val; sanitized end servers = sanitized.delete(:servers) [servers, sanitized] end end end
Version data entries
22 entries across 22 versions & 1 rubygems