From d67bbe447fe6d63cd39835d53649bb2084a5d9bc Mon Sep 17 00:00:00 2001 From: Patrick Gansterer Date: Tue, 11 Dec 2018 15:27:32 +0100 Subject: [PATCH] Do not raise Encoding::UndefinedConversionError during CSV rendering Use replacement characters instead of exceptions. --- lib/render_csv.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/render_csv.rb b/lib/render_csv.rb index 8ea77297..8574e2f5 100644 --- a/lib/render_csv.rb +++ b/lib/render_csv.rb @@ -13,13 +13,14 @@ class RenderCSV end def to_csv - options = @options.select {|k| %w(col_sep row_sep encoding).include? k.to_s} - CSV.generate options do |csv| + options = @options.select {|k| %w(col_sep row_sep).include? k.to_s} + ret = CSV.generate options do |csv| if h = header csv << h end data {|d| csv << d} end + ret.encode(@options[:encoding], invalid: :replace, undef: :replace) end def header