Module: Hadupils::Util

Defined in:
lib/hadupils/util.rb

Class Method Summary collapse

Class Method Details

.archive_has_directory?(archive_path, directory) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/hadupils/util.rb', line 14

def self.archive_has_directory?(archive_path, directory)
  directory = directory + '/' unless directory.end_with?('/')
  targets = [directory[0..-2], directory]
  found = false
  read_archive(archive_path) do |arch|
    arch.each do |entry|
      found = (entry.directory? and targets.include?(entry.full_name))
      break if found
    end
  end
  found
end

.read_archive(archive_path) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/hadupils/util.rb', line 5

def self.read_archive(archive_path)
  Zlib::GzipReader.open(archive_path) do |zlib|
    Gem::Package::TarReader.new(zlib) do |tar|
      tar.rewind
      yield tar
    end
  end
end