class DTK::Client::Config
Singleton patern to hold configuration for dtk client.
Constants
- CLIENT_CONF
- DEFAULT_CONF_FILE_PATH
- REQUIRED_KEYS
Public Class Methods
[](k)
click to toggle source
# File lib/client/config.rb, line 27 def self.[](k) instance[k.to_s] end
new()
click to toggle source
# File lib/client/config.rb, line 36 def initialize set_defaults! load_config_file_values! validate end
Private Instance Methods
convert_data_types(val_string)
click to toggle source
# File lib/client/config.rb, line 91 def convert_data_types(val_string) case val_string when /^(true|false)$/ val_string.eql?('true') ? true : false when /^[0-9]+$/ val_string.to_i when /^[0-9\.]+$/ # making sure dont do something like '10.0.0.1'.to_f val_string.split('.').size == 2 ? val_string.to_f : val_string else val_string end end
load_config_file_values!()
click to toggle source
# File lib/client/config.rb, line 46 def load_config_file_values! client_config_path = Configurator.client_config_path merge_config_file_content_into_hash!(client_config_path) if File.exist?(client_config_path) end
merge_config_file_content_into_hash!(path)
click to toggle source
# File lib/client/config.rb, line 60 def merge_config_file_content_into_hash!(path) merge!(parse_string_content(File.read(path))) end
parse_string_content(string)
click to toggle source
returns a hash
# File lib/client/config.rb, line 65 def parse_string_content(string) ret = {} string.each_line do |line| line.strip! # strip off comment line.gsub!(/#.+$/,'') # remove control characters line.gsub!(/\t/,'') # below strips blanks after and before '=' if line =~ /(^[^=]+)[ ]*=[ ]*(.+$)/ attr = $1 val_string = $2 ret.merge!(attr => parse_value_string(val_string)) else # skipping any line that does not parse end end ret end
parse_value_string(val_string)
click to toggle source
# File lib/client/config.rb, line 85 def parse_value_string(val_string) # remove trailing blanks val_string = val_string.gsub(/[ ]+$/,'') convert_data_types(val_string) end
set_defaults!()
click to toggle source
# File lib/client/config.rb, line 42 def set_defaults! merge_config_file_content_into_hash!(DEFAULT_CONF_FILE_PATH) end
validate()
click to toggle source
# File lib/client/config.rb, line 52 def validate # TODO: along with checking for missing keys should check for legal values missing_keys = REQUIRED_KEYS - keys unless missing_keys.empty? raise Error::Usage, "Missing config keys (#{missing_keys.join(", ")}) in client config file '#{Configurator.client_config_path}" end end