Class: Avalon::Config

Inherits:
Object
  • Object
show all
Extended by:
Utils
Defined in:
lib/avalon/config.rb

Overview

Global Config

Constant Summary collapse

DEFAULT_SOUNDS =
{
  restart: 'Frog.aiff',
  failure: 'Glass.aiff',
  perf_low: 'Glass.aiff',
  last_share: 'Glass.aiff',
  temp_high: 'Ping.aiff',
  temp_low: 'Ping.aiff',
  block_found: ['Dog.aiff', 'Purr.aiff', 'Dog.aiff'],
  block_updated: ['Purr.aiff', 'Purr.aiff', 'Purr.aiff']
}

Class Method Summary collapse

Methods included from Utils

alarm, duration, find_file, ping, play, system

Class Method Details

.[](key) ⇒ Object



47
48
49
# File 'lib/avalon/config.rb', line 47

def self.[] key
  @config[key]
end

.configObject



43
44
45
# File 'lib/avalon/config.rb', line 43

def self.config
  @config
end

.load(env) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/avalon/config.rb', line 17

def self.load env
  config_file = find_file( '../../../config/monitor.yml', '~/.avalon/monitor.yml')

  raise "No config file: ~/.avalon/monitor.yml" unless File.exist? config_file

  @config = YAML::load_file(config_file)[env]
  @config[:environment] = env
  @config[:block_file] =  find_file( '../../../config/blocks.yml', '~/.avalon/blocks.yml') ||
    File.expand_path('~/.avalon/blocks.yml')

  # Setting defaults
  @config[:alert_sounds] = 
    case @config[:alert_sounds]
    when Symbol, false
      @config[:alert_sounds]
    when Hash  
      DEFAULT_SOUNDS.merge @config[:alert_sounds]
    when true, nil
      DEFAULT_SOUNDS  
    end  
  @config[:alert_last_share] ||= 2
  @config[:alert_after] ||= @config[:status_fails_to_alarm] || 2
  @config[:alert_temp_high] ||= @config[:alert_temp] || 55
  @config[:alert_temp_low] ||= 30
end