module ConfigFiles::ConfigFilesClassMethods
Attributes
directories[RW]
Public Class Methods
extended(base)
click to toggle source
# File lib/config_files.rb, line 26 def self.extended(base) base.instance_eval do self.directories=default_directories end end
Public Instance Methods
any_extension()
click to toggle source
# File lib/config_files.rb, line 32 def any_extension '*' end
build_combined(file)
click to toggle source
# File lib/config_files.rb, line 58 def build_combined(file) merged_hash(file) end
config_directories(*arr)
click to toggle source
# File lib/config_files.rb, line 44 def config_directories(*arr) self.directories||=default_directories arr.each do |directory_list| directory_list.each do |key, value| self.directories[key]=value.map { |dir| ::File.expand_path(dir) } meta_def("#{key}_dir") { @directories[key] } end end end
config_key()
click to toggle source
# File lib/config_files.rb, line 36 def config_key :etc end
default_directories()
click to toggle source
# File lib/config_files.rb, line 40 def default_directories { :etc => ['config', 'etc', '/etc'] } end
dynamic_config_files(*arr)
click to toggle source
# File lib/config_files.rb, line 69 def dynamic_config_files(*arr) arr.each do |file| meta_def(file) { build_combined(file) } end end
Also aliased as: config_files
merged_hash(file)
click to toggle source
# File lib/config_files.rb, line 54 def merged_hash(file) config_files(file).inject({}) { |master, file| master.deep_merge(FileFactory.(file)) } end
static_config_files(*arr)
click to toggle source
# File lib/config_files.rb, line 62 def static_config_files(*arr) arr.each do |file| content=build_combined(file) meta_def(file) { content } end end
Private Instance Methods
directory_listing(directory, file)
click to toggle source
# File lib/config_files.rb, line 78 def directory_listing(directory, file) ::Dir.glob(::File.join(directory, "#{file}.*")) end
files(file, key=config_key)
click to toggle source
# File lib/config_files.rb, line 90 def files(file, key=config_key) directory_listing(first_directory(file, key), file) end
first_directory(file, key=config_key)
click to toggle source
# File lib/config_files.rb, line 82 def first_directory(file, key=config_key) begin self.directories[key]&.detect { |directory| directory_listing(directory, file).presence } || '' rescue NoMethodError=>e raise NoDirectoryEntry, "Unable to find #{key} in #{self.directories}" end end