strange... all I can think of is that the ruby installer you used has
a foobar'ed zlib1.dll.  Have you tried upgrading to 1.8.5?  Also, what
version of zlib does your ruby claim to have?

> ruby -r zlib -e 'puts Zlib::ZLIB_VERSION'
1.2.3

On Mar 14, 10:13 am, "greg" <eeg... / gmail.com> wrote:
> ruby -v
> ruby 1.8.4 (2006-04-14) [i386-mswin32]
>
> I should also say that the same code I am using works fine on a file
> of 20MB that expands to 60MB
>
> does the zip gem (or any other gem) handle .gz files?
>
> Thanks,
> Greg
>
> On Mar 13, 7:56 pm, "eden li" <eden... / gmail.com> wrote:
>
> > The default decompress method works for me...
>
> > $ irb -r zlib
> > irb(main):001:0> File.stat('threehundred.gz').size / (1024**2)
> > => 81
> > irb(main):002:0> Zlib::GzipReader.open('threehundred.gz') { |r|
> > File.open('threehundred', 'wb') { |f| f.write r.read } }
> > => 314835846
> > irb(main):003:0> File.stat('threehundred').size / (1024**2)
> > => 300
>
> > What version of ruby are you using?
>
> > On Mar 14, 2:42 am, "greg" <eeg... / gmail.com> wrote:
>
> > > I am trying to decompress a 80MB file (decompresses to 300MB), but I
> > > keep getting a buffer error.  I thought I had a workaround using
> > > chunks, but it fails with 20M left to go.  Any help or suggestions are
> > > greatly appreciated.
>
> > > in `read': buffer error (Zlib::BufError)
>
> > > class Zlib::GzipReader
> > >   def each_chunk(chunk_size=1024)
> > >     yield read(chunk_size) until eof
> > >   end
> > > end
>
> > > gz = Zlib::GzipReader.open(zip_file)
>
> > > File.open( non_zip_file, 'wb' ) do |f|
> > >   gz.each_chunk {|chunk| f.write(chunk)}
> > > end