class Loom::Config::FileManager
Public Class Methods
new(config)
click to toggle source
# File lib/loom/config.rb, line 79 def initialize(config) @loom_search_paths = [config.loom_search_paths].flatten @loom_files = config.loom_files @loom_file_patterns = config.loom_file_patterns end
Public Instance Methods
find(glob_patterns)
click to toggle source
# File lib/loom/config.rb, line 85 def find(glob_patterns) search_loom_paths(glob_patterns) end
loom_files()
click to toggle source
# File lib/loom/config.rb, line 89 def loom_files [@loom_files + search_loom_paths(@loom_file_patterns)].flatten.uniq end
Private Instance Methods
search_loom_paths(file_patterns)
click to toggle source
# File lib/loom/config.rb, line 94 def search_loom_paths(file_patterns) # Maps glob patterns into real file paths, selecting only # readable files, and logs the result. file_patterns.map do |file_pattern| @loom_search_paths.map do |path| Dir.glob File.join(path, "**", file_pattern) end end.flatten.uniq.select do |path| should_select = File.file?(path) && File.readable?(path) unless should_select Loom.log.debug1(self) { "skipping config path => #{path}" } end should_select end.tap do |config_files| unless config_files.empty? Loom.log.debug1(self) { "found config files => #{config_files}" } end end.uniq end