Class: Dir

Inherits:
Object
  • Object
show all
Defined in:
lib/base/dir.rb

Class Method Summary collapse

Class Method Details

.empty?(directory) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
# File 'lib/base/dir.rb', line 18

def self.empty? directory
  if((Dir.entries(directory) - %w{ . .. }).empty?)
    return true
  end
  false
end

.get_latest_mtime(directory) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/base/dir.rb', line 25

def self.get_latest_mtime directory
  mtime=Time.new(1980)
  Dir.chdir(directory)  do
    latest_filename=''
    Dir.glob('**/*.*').each{|f|
      if mtime.nil? || File.mtime(f) > mtime
        mtime=File.mtime(f) 
        latest_filename=f
      end
    }
    puts "   latest_mtime #{mtime.to_s} #{latest_filename}" if Environment.default.debug?
  end
  mtime
end

.make(directory) ⇒ Object



4
5
6
# File 'lib/base/dir.rb', line 4

def self.make directory
	FileUtils.mkdir_p directory if !File.exists? directory
end

.remove(directory, remove_empty_parents = false) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/base/dir.rb', line 7

def self.remove directory, remove_empty_parents=false
  begin
    FileUtils.rm_rf directory if(!Dir.empty?(directory))
    FileUtils.rm_r directory  if(File.exists?(directory))
    if(remove_empty_parents)
      parent_dir=File.dirname(directory)
      Dir.remove parent_dir, true if(Dir.empty?(parent_dir))
    end
  rescue
  end
end

.unzip(zipfilename, directory) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/base/dir.rb', line 59

def self.unzip(zipfilename,directory)
  if Gem::Specification::find_all_by_name('rubyzip').any?
    require 'zip'
    count = 0
    Zip::File.open(zipfilename) do |zip_file|
      zip_file.each do |entry|
        dest = "#{directory}/#{entry.to_s}"
        parent_dir=File.dirname(dest)
        FileUtils.mkdir_p parent_dir if(!Dir.exists?(parent_dir))
        entry.extract("#{directory}/#{entry.to_s}")
        count = count + 1
      end
    end
    puts "extracted #{count} files to #{directory}"
  else
    puts "rubyzip gem is not installed 'gem install rubyzip'"
  end
end

.zip(directory, files, zipfilename) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/base/dir.rb', line 40

def self.zip(directory,files,zipfilename)
    if Gem::Specification::find_all_by_name('rubyzip').any?
      require 'zip'
      File.delete(zipfilename) if(File.exists?(zipfilename))
      Zip::File.open(zipfilename,Zip::File::CREATE) do |zipfile|
        Dir.chdir(directory) do
          count = 0
          files.each{|source_file|
            zipfile.add(source_file,"#{directory}/#{source_file}")
            count = count + 1
          }
          puts "added #{count} files to #{zipfilename}"
        end
      end
    else
      puts "rubyzip gem is not installed 'gem install rubyzip'"
    end
end