"All-in-one" archives library?

Hi all.

I'd like to see some library which handles most popular archive types (zip,
rar, tar, gz, bz2 ...) in uniform way, just like rubyzip[1] does:

require 'some-very-cool-library'

Dir['myarchive.zip'].each ...

Or even

Dir['myarchive.zip/otherone.rar/evenother.bz2'].each ...

Is something like this exists in the world?

Thanks.

Victor.

1. http://rubyzip.sourceforge.net

Can you drop me an email with what you'd really like to see? TRUG is
working on libarchive this weekend at a hackathon.

-austin

···

On 5/1/06, Victor Shepelev <vshepelev@imho.com.ua> wrote:

I'd like to see some library which handles most popular archive types (zip,
rar, tar, gz, bz2 ...) in uniform way, just like rubyzip[1] does:

require 'some-very-cool-library'

Dir['myarchive.zip'].each ...

Or even

Dir['myarchive.zip/otherone.rar/evenother.bz2'].each ...

Is something like this exists in the world?

--
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca

At the moment, there's archive-tar-external, which basically wraps calls to
installed software with popen. So, if you have all these tools installed
already, you can do something like:

      require 'archive/tar_external'

      t = Archive::Tar::External.new( name )
      t.compressed_archive_name = name
      if name =~ /\.bz2/
        t.uncompress( "bunzip2" )
      elsif name =~ /\.gz/
        t.uncompress( "gunzip" )
      elsif name =~ /\.zip/
        t.uncompress( "unzip" )
      end
      if name =~ /\.t(ar\.)?(gz)?/
        t.extract
      end

HTH,

- Dimitri

···

On 5/2/06, Victor Shepelev <vshepelev@imho.com.ua> wrote:

Hi all.

I'd like to see some library which handles most popular archive types
(zip,
rar, tar, gz, bz2 ...) in uniform way, just like rubyzip[1] does: