class Packwerk::FilesForProcessing

Public Class Methods

fetch(paths:, configuration:) click to toggle source
# File lib/packwerk/files_for_processing.rb, line 7
def fetch(paths:, configuration:)
  new(paths, configuration).files
end
new(paths, configuration) click to toggle source
# File lib/packwerk/files_for_processing.rb, line 12
def initialize(paths, configuration)
  @paths = paths
  @configuration = configuration
end

Public Instance Methods

files() click to toggle source
# File lib/packwerk/files_for_processing.rb, line 17
def files
  include_files = if custom_files.empty?
    configured_included_files
  else
    custom_files
  end

  include_files - configured_excluded_files
end

Private Instance Methods

configured_excluded_files() click to toggle source
# File lib/packwerk/files_for_processing.rb, line 57
def configured_excluded_files
  files_for_globs(@configuration.exclude)
end
configured_included_files() click to toggle source
# File lib/packwerk/files_for_processing.rb, line 53
def configured_included_files
  files_for_globs(@configuration.include)
end
custom_files() click to toggle source
# File lib/packwerk/files_for_processing.rb, line 29
def custom_files
  @custom_files ||= @paths.flat_map do |path|
    path = File.expand_path(path, @configuration.root_path)
    if File.file?(path)
      path
    else
      custom_included_files(path)
    end
  end
end
custom_included_files(path) click to toggle source
# File lib/packwerk/files_for_processing.rb, line 40
def custom_included_files(path)
  # Note, assuming include globs are always relative paths
  absolute_includes = @configuration.include.map do |glob|
    File.expand_path(glob, @configuration.root_path)
  end

  Dir.glob([File.join(path, "**", "*")]).select do |file_path|
    absolute_includes.any? do |pattern|
      File.fnmatch?(pattern, file_path, File::FNM_EXTGLOB)
    end
  end
end
files_for_globs(globs) click to toggle source
# File lib/packwerk/files_for_processing.rb, line 61
def files_for_globs(globs)
  globs
    .flat_map { |glob| Dir[File.expand_path(glob, @configuration.root_path)] }
    .uniq
end