diff options
Diffstat (limited to 'gems/csv_builder/lib/csv_builder/gzip.rb')
-rw-r--r-- | gems/csv_builder/lib/csv_builder/gzip.rb | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gems/csv_builder/lib/csv_builder/gzip.rb b/gems/csv_builder/lib/csv_builder/gzip.rb index f97c066705a..83a83970acd 100644 --- a/gems/csv_builder/lib/csv_builder/gzip.rb +++ b/gems/csv_builder/lib/csv_builder/gzip.rb @@ -12,12 +12,15 @@ module CsvBuilder # > puts rows # > end def render - Tempfile.open(['csv_builder_gzip', '.csv.gz']) do |tempfile| - csv = CSV.new(Zlib::GzipWriter.open(tempfile.path)) + Tempfile.create(['csv_builder_gzip', '.csv.gz']) do |tempfile| + Zlib::GzipWriter.open(tempfile.path) do |gz| + csv = CSV.new(gz) - write_csv csv, until_condition: -> {} # truncation must be handled outside of the CsvBuilder + write_csv csv, until_condition: -> {} # truncation must be handled outside of the CsvBuilder + + csv.close + end - csv.close yield tempfile, @rows_written end end |