Module: AgileUtils::FileUtil

Defined in:
lib/agile_utils/file_util.rb

Constant Summary collapse

CustomError =
Class.new(StandardError)

Class Method Summary collapse

Class Method Details

.delete(files) ⇒ Object

Delete the files from the given list

Parameters:

  • files

    list of files to be deleted



43
44
45
46
47
# File 'lib/agile_utils/file_util.rb', line 43

def delete(files)
  files.each do |file|
    FileUtils.rm_rf(file)
  end
end

.find(base_dir, extension = "xhtml") ⇒ Array<String>

Find list of files based on certain extension

rubocop:disable CollectionMethods

Parameters:

  • base_dir (String)

    the starting directory

  • extension (String) (defaults to: "xhtml")

    the file extension to search for

Returns:

  • (Array<String>)

    list of matching files or empty list



15
16
17
18
19
20
21
# File 'lib/agile_utils/file_util.rb', line 15

def find(base_dir, extension = "xhtml")
  file_paths = []
  Find.find(base_dir) do |path|
    file_paths << path if path =~ /.*\.#{extension}$/
  end
  file_paths
end

.gunzip(filename, output_dir) ⇒ Object

Uncompress ‘input.tar.gz’ file

Parameters:

  • filename (String)

    input file in the ‘tar.gzip’ format

  • output_dir (String)

    the output directory



34
35
36
37
38
# File 'lib/agile_utils/file_util.rb', line 34

def gunzip(filename, output_dir)
  input_file = File.open(filename, "rb")
  tgz = Zlib::GzipReader.new(input_file)
  Archive::Tar::Minitar.unpack(tgz, output_dir)
end

.tar_gzip_files(files, output = "output.tgz") ⇒ Object

Parameters:

  • files (Array<String>)

    list of input files

  • output (String) (defaults to: "output.tgz")

    the output file in .tar.gz format



26
27
28
# File 'lib/agile_utils/file_util.rb', line 26

def tar_gzip_files(files, output="output.tgz")
  Minitar.pack(files, Zlib::GzipWriter.new(File.open(output, 'wb')))
end

.timeObject

Time the operation before and after the operation for tuning purpose



50
51
52
53
54
55
# File 'lib/agile_utils/file_util.rb', line 50

def time
  beg_time = Time.now
  yield
  end_time = Time.now
  end_time - beg_time
end