module PuppetForgeServer::Utils::Archiver

Public Instance Methods

read_from_archive(archive, name_regex) click to toggle source
# File lib/puppet_forge_server/utils/archiver.rb, line 21
def read_from_archive(archive, name_regex)
  tar = Gem::Package::TarReader.new(Zlib::GzipReader.open(archive))
  tar.rewind
  files = {}
  tar.each do |obj|
    files[obj.full_name] = obj.read if obj.file? && obj.full_name =~ name_regex
  end
  return files unless files.empty?
  raise "Given name #{name_regex} not found in #{archive}"
end