class Pod::Sandbox::PathList

The PathList class is designed to perform multiple glob matches against a given directory. Basically, it generates a list of all the children paths and matches the globs patterns against them, resulting in just one access to the file system.

@note A PathList once it has generated the list of the paths this is

updated only if explicitly requested by calling
{#read_file_system}

Public Instance Methods

read_file_system() click to toggle source
# File lib/cocoapods-pdk8/hook/sandbox/path_list.rb, line 13
def read_file_system

  unless root.exist?
    puts caller
    raise Informative, "Attempt to read non existent folder `#{root}`."
  end
  dirs = []
  files = []
  root_length = root.cleanpath.to_s.length + File::SEPARATOR.length
  escaped_root = escape_path_for_glob(root)
  Dir.glob(escaped_root + '**/*', File::FNM_DOTMATCH).each do |f|
    directory = File.directory?(f)
    # Ignore `.` and `..` directories
    next if directory && f =~ /\.\.?$/

    f = f.slice(root_length, f.length - root_length)
    next if f.nil?

    (directory ? dirs : files) << f
  end

  dirs.sort_by!(&:upcase)
  files.sort_by!(&:upcase)

  @dirs = dirs
  @files = files
  @glob_cache = {}
end