class OptParseValidator::ConfigFilesLoaderMerger
Options Files container
Attributes
Public Class Methods
Source
# File lib/opt_parse_validator/config_files_loader_merger.rb, line 22 def self.supported_extensions extensions = ConfigFile.constants.select do |const| name = ConfigFile.const_get(const) name.is_a?(Class) && name != ConfigFile::Base end extensions.map { |sym| sym.to_s.downcase } end
@return [ Array<String> ] The downcased supported extensions list
Public Instance Methods
Source
# File lib/opt_parse_validator/config_files_loader_merger.rb, line 36 def <<(file_path) return self unless File.exist?(file_path) ext = File.extname(file_path).delete('.') raise Error, "The option file's extension '#{ext}' is not supported" unless self.class.supported_extensions.include?(ext) super(ConfigFile.const_get(ext.upcase).new(file_path)) end
@param [ String ] file_path
@return [ Self ]
Calls superclass method
Source
# File lib/opt_parse_validator/config_files_loader_merger.rb, line 49 def parse result = {} each { |config_file| result.deep_merge!(config_file.parse) } result = result[result_key] || {} if result_key result.deep_symbolize_keys end
@params [ Hash ] opts
@return [ Hash ]