Module: Hutch::Config

Defined in:
lib/hutch/config.rb

Class Method Summary collapse

Class Method Details

.check_attr(attr) ⇒ Object



44
45
46
47
48
# File 'lib/hutch/config.rb', line 44

def self.check_attr(attr)
  unless user_config.key?(attr)
    raise UnknownAttributeError, "#{attr} is not a valid config attribute"
  end
end

.get(attr) ⇒ Object Also known as: []



29
30
31
32
# File 'lib/hutch/config.rb', line 29

def self.get(attr)
  check_attr(attr)
  user_config[attr]
end

.initializeObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/hutch/config.rb', line 10

def self.initialize
  @config = {
    mq_host: 'localhost',
    mq_port: 5672,
    mq_exchange: 'hutch',  # TODO: should this be required?
    mq_vhost: '/',
    mq_tls: false,
    mq_username: 'guest',
    mq_password: 'guest',
    mq_api_host: 'localhost',
    mq_api_port: 15672,
    mq_api_ssl: false,
    log_level: Logger::INFO,
    require_paths: [],
    autoload_rails: true,
    error_handlers: [Hutch::ErrorHandlers::Logger.new]
  }
end

.load_from_file(file) ⇒ Object



55
56
57
58
59
# File 'lib/hutch/config.rb', line 55

def self.load_from_file(file)
  YAML.load(file).each do |attr, value|
    Hutch::Config.send("#{attr}=", value)
  end
end

.method_missing(method, *args, &block) ⇒ Object



61
62
63
64
65
66
67
68
69
70
# File 'lib/hutch/config.rb', line 61

def self.method_missing(method, *args, &block)
  attr = method.to_s.sub(/=$/, '').to_sym
  return super unless user_config.key?(attr)

  if method =~ /=$/
    set(attr, args.first)
  else
    get(attr)
  end
end

.set(attr, value) ⇒ Object Also known as: []=



34
35
36
37
# File 'lib/hutch/config.rb', line 34

def self.set(attr, value)
  check_attr(attr)
  user_config[attr] = value
end

.user_configObject



50
51
52
53
# File 'lib/hutch/config.rb', line 50

def self.user_config
  initialize unless @config
  @config
end