Why is Zlib::GzipWriter#close throwing an error here? The resulting  
file comes out as desired.

For now I've just thrown a rescue on the IOError and I'm happy, but  
(based on the example in the Zlib documentation) I don't see what's  
wrong here.

[Slim:Sites/SVG/GFTraits] gavinkis% ls *.svgz
tcsh: ls: No match.

[Slim:Sites/SVG/GFTraits] gavinkis% tail -n 11 SocialNetworkSolver.rb
require 'erb'
require 'zlib'
File.open( $output_file, "w+" ){ |out_file|
         gz = Zlib::GzipWriter.new( out_file )
         File.open( $template_file, 'r' ){ |template|
                 gz.write( ERB.new( template.read ).result( binding ) )
         }
         gz.close
}
Stopwatch.mark( "Write SVGZ" )

[Slim:Sites/SVG/GFTraits] gavinkis% ruby SocialNetworkSolver.rb
Load file: 0.004s
Create springs: 0.003s
Create repulsors: 0.003s
Randomize placement: 0.001s
Run Simulation: 5.187s
Create SVG: 0.237s
SocialNetworkSolver.rb:251:in `close': closed stream (IOError)
         from SocialNetworkSolver.rb:251:in `open'
         from SocialNetworkSolver.rb:251

[Slim:Sites/SVG/GFTraits] gavinkis% ruby --version
ruby 1.8.2 (2004-12-25) [powerpc-darwin8.0.0]

[Slim:Sites/SVG/GFTraits] gavinkis% uname -a
Darwin Slim.local 8.2.0 Darwin Kernel Version 8.2.0: Fri Jun 24  
17:46:54 PDT 2005; root:xnu-792.2.4.obj~3/RELEASE_PPC Power Macintosh  
powerpc

[Slim:Sites/SVG/GFTraits] gavinkis% ls *.svgz
GFTraits.svgz