class Erlnixify::Settings
Provides a library for settings to be accessed from accross the system
Constants
- CHECK_COMMAND
- CHECK_INTERVAL
- CHECK_REGEX
- CHECK_TIMEOUT
- STARTUP_TIMEOUT
Attributes
options[RW]
settings[RW]
Public Class Methods
new(options)
click to toggle source
# File lib/erlnixify/settings.rb, line 17 def initialize(options) config = options[:config] @settings = self.default_settings self.load! config if config self.merge(options) self.post_settings_setup end
Public Instance Methods
[](key)
click to toggle source
# File lib/erlnixify/settings.rb, line 57 def [](key) return @settings[key] end
default_settings()
click to toggle source
# 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_erl_interface()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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 = {})
click to toggle source
# File lib/erlnixify/settings.rb, line 45 def load!(filename, options = {}) newsets = YAML::load_file(filename) env = options[:env].to_sym if options[:env] if env newsets = newsets[env] if newsets[env] end self.merge(newsets) end
merge(data)
click to toggle source
# 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()
click to toggle source
# File lib/erlnixify/settings.rb, line 75 def post_settings_setup @settings[:erlang] = self.find_erlang_root @settings[:cookie] = self.find_cookie @settings[:erl_interface] = self.find_erl_interface @settings[:fullnode] = self.find_full_node end