Module FileUtils
In: lib/more/facets/fileutils/cp_rx.rb
lib/more/facets/fileutils/safe_ln.rb
lib/more/facets/fileutils/slice.rb
lib/more/facets/fileutils/wc.rb
lib/more/facets/fileutils/whereis.rb
lib/more/facets/fileutils/which.rb

Methods

copy_entryx   cp_rx   head   safe_ln   slice   tail   wc   whereis   which  

Constants

LINKING_SUPPORTED = [true]
Win32Exts = %w{.exe .com .bat .cmd}
Win32Exts = %w{.exe .com .bat .cmd}

Public Instance methods

Like FileUtils.copy_entry, but takes a filter proc that can return false to skip a file.

Note that if the filter rejects a subdirectory then everything within that subdirectory is automatically skipped as well.

Like FileUtils.cp_r, but takes a filter proc that can return false to skip a file:

  cp_rx "bigDirectoryTree", "dest", {:noop => true} do |name|
    /dontCopyThis$/.match(name)
  end

Note that if the filter rejects a subdirectory then everything within that subdirectory is automatically skipped as well.

In block form, yields the first number of lines of file filename. In non-block form, it returns an array of the first number of lines:

  # Returns first 10 lines of 'myfile'
  FileUtils.head("myfile", 10)

Attempt to do a normal file link, but fall back to a copy if the link fails.

CREDIT: Jim Weirich

In block form, yields lines from-to. In non-block form, returns an array of lines from-to:

  # Returns lines 8-12 of 'myfile'
  FileUtils.body("myfile",8,12)

CREDIT Shashank Date, via Daniel Berger.

In block form, yields the last number of lines of file filename. In non-block form, it returns the lines as an array.

Note that this method slurps the entire file, so I don‘t recommend it for very large files. If you want an advanced form of tail, I suggest using file-tail, by Florian Frank (available on the RAA):

  # Returns last 3 lines of 'myfile'
  FileUtils.tail("myfile",3)

And no tail -f.

With no arguments, returns a four element array consisting of the number of bytes, characters, words and lines in filename, respectively.

Valid options are bytes, characters (or just ‘chars’), words and lines:

  # Return the number of words in 'myfile'
  FileUtils.wc("myfile",'words')

CREDIT: Daniel J. Berger

In block form, yields each ((program)) within ((path)). In non-block form, returns an array of each ((program)) within ((path)). Returns (({nil})) if not found.

On the MS Windows platform, it looks for executables ending with .exe, .bat and .com, which you may optionally include in the program name:

   FileUtils.whereis("ruby")  #=> ['/usr/local/bin/ruby','/opt/bin/ruby']

CREDIT: Daniel J. Berger

Looks for the first occurrence of program within path.

On the MS Windows platform, it looks for executables ending with .exe, .bat and .com, which you may optionally include in the program name. Returns nil if not found.

CREDIT: Daniel J. Berger, Michael Granger

[Validate]