Class: Erlnixify::Settings
- Inherits:
-
Object
- Object
- Erlnixify::Settings
- Defined in:
- lib/erlnixify/settings.rb
Overview
Provides a library for settings to be accessed from accross the system
Constant Summary collapse
- STARTUP_TIMEOUT =
60- CHECK_INTERVAL =
30- CHECK_TIMEOUT =
30- CHECK_COMMAND =
"erlang statistics [reductions]"- CHECK_REGEX =
"^{\\d+, \\d+}$"
Instance Attribute Summary collapse
-
#options ⇒ Object
Returns the value of attribute options.
-
#settings ⇒ Object
Returns the value of attribute settings.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #default_settings ⇒ Object
- #find_cookie ⇒ Object
- #find_erl_interface ⇒ Object
- #find_erlang_root ⇒ Object
- #find_full_node ⇒ Object
-
#initialize(options) ⇒ Settings
constructor
A new instance of Settings.
- #load!(filename, options = {}) ⇒ Object
- #merge(data) ⇒ Object
- #post_settings_setup ⇒ Object
Constructor Details
#initialize(options) ⇒ Settings
Returns a new instance of Settings.
17 18 19 20 21 22 23 24 25 |
# File 'lib/erlnixify/settings.rb', line 17 def initialize() config = [:config] @settings = self.default_settings self.load! config if config self.merge() self.post_settings_setup end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
9 10 11 |
# File 'lib/erlnixify/settings.rb', line 9 def end |
#settings ⇒ Object
Returns the value of attribute settings.
8 9 10 |
# File 'lib/erlnixify/settings.rb', line 8 def settings @settings end |
Instance Method Details
#[](key) ⇒ Object
57 58 59 |
# File 'lib/erlnixify/settings.rb', line 57 def [](key) return @settings[key] end |
#default_settings ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/erlnixify/settings.rb', line 27 def default_settings defaults = {release: nil, erlang: nil, home: ENV["HOME"], name: nil, fullnode: nil, command: nil, check: CHECK_COMMAND, checkregex: CHECK_REGEX, cookiefile: nil, cookie: nil, startuptimeout: STARTUP_TIMEOUT, checkinterval: CHECK_INTERVAL, checktimeout: CHECK_TIMEOUT, config: nil} defaults end |
#find_cookie ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/erlnixify/settings.rb', line 93 def = @settings[:cookiefile] if @settings[:cookie] @settings[:cookie] elsif if File.exists? IO.read else raise RuntimeError, "Cookie file does not exist" end end end |
#find_erl_interface ⇒ Object
116 117 118 119 120 121 122 123 124 |
# File 'lib/erlnixify/settings.rb', line 116 def find_erl_interface erlang_root = @settings[:erlang] release_root = @settings[:release] if erlang_root && (File.directory? erlang_root) Dir.glob("#{erlang_root}/lib/erl_interface-*").first elsif release_root && (File.directory? release_root) Dir.glob("#{release_root}/lib/erl_interface-*").first end end |
#find_erlang_root ⇒ Object
82 83 84 85 86 87 88 89 90 |
# File 'lib/erlnixify/settings.rb', line 82 def find_erlang_root if @settings[:erlang] @settings[:erlang] elsif File.directory? "/usr/local/lib/erlang" "/usr/local/lib/erlang" elsif File.directory? "/usr/lib/erlang" "/usr/lib/erlang" end end |
#find_full_node ⇒ Object
106 107 108 109 110 111 112 113 114 |
# File 'lib/erlnixify/settings.rb', line 106 def find_full_node if @settings[:fullnode] @settings[:fullnode] else hostname = `hostname -f`.strip node = @settings[:name] "#{node}@#{hostname}" end end |
#load!(filename, options = {}) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/erlnixify/settings.rb', line 45 def load!(filename, = {}) newsets = YAML::load_file(filename) env = [:env].to_sym if [:env] if env newsets = newsets[env] if newsets[env] end self.merge(newsets) end |
#merge(data) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/erlnixify/settings.rb', line 61 def merge(data) @settings = @settings.inject({}) do |newhash, (key, value)| symkey = key.to_sym data_value = data[symkey] data_value = data[key.to_s] unless data_value if data_value newhash[symkey] = data_value else newhash[symkey] = value end newhash end end |
#post_settings_setup ⇒ Object
75 76 77 78 79 80 |
# File 'lib/erlnixify/settings.rb', line 75 def post_settings_setup @settings[:erlang] = self.find_erlang_root @settings[:cookie] = self. @settings[:erl_interface] = self.find_erl_interface @settings[:fullnode] = self.find_full_node end |