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