class Solano::RepoConfig
Public Class Methods
new(scm)
click to toggle source
# File lib/solano/cli/config.rb, line 10 def initialize(scm) @scm = scm @config = load_config end
Public Instance Methods
[](key)
click to toggle source
# File lib/solano/cli/config.rb, line 15 def [](key) return @config[key.to_s] end
config_filename()
click to toggle source
# File lib/solano/cli/config.rb, line 19 def config_filename @config_filename end
load_config()
click to toggle source
# File lib/solano/cli/config.rb, line 23 def load_config config, raw_config = read_config(false) return config end
read_config(raise_error)
click to toggle source
# File lib/solano/cli/config.rb, line 28 def read_config(raise_error) config = nil raw_config = nil root = @scm.root cfgfile_pair = pick_config_pair(root, Config::CONFIG_PATHS) cfgfile_pair_depr = pick_config_pair(root, Config::CONFIG_PATHS_DEPRECATED) if cfgfile_pair && cfgfile_pair_depr then abort Text::Error::CONFIG_PATHS_COLLISION % [cfgfile_pair, cfgfile_pair_depr] end cfgfile_pair = cfgfile_pair_depr if cfgfile_pair.nil? if cfgfile_pair && cfgfile_pair.first then cfgfile = cfgfile_pair.first @config_filename = cfgfile_pair[1] begin raw_config = File.read(cfgfile) if raw_config && raw_config !~ /\A\s*\z/ then config = YAML.load(raw_config) config = hash_stringify_keys(config) config = config['solano'] || config['tddium'] || config end rescue Exception => e message = Text::Warning::YAML_PARSE_FAILED % cfgfile if raise_error then raise ::Solano::SolanoError.new(message) else say message end end end config ||= Hash.new raw_config ||= '' return [config, raw_config] end
Private Instance Methods
pick_config_pair(root, config_paths)
click to toggle source
# File lib/solano/cli/config.rb, line 69 def pick_config_pair(root, config_paths) files = config_paths.map { |fn| [ File.join(root, fn), fn ] } files.select { |p| File.exists?(p.first) }.first end