|
@@ -162,7 +162,7 @@ module Blazer
|
|
|
render layout: false
|
|
|
end
|
|
|
format.csv do
|
|
|
- send_data csv_data(@columns, @rows), type: "text/csv; charset=utf-8; header=present", disposition: "attachment; filename=\"#{@query.try(:name).try(:parameterize).presence || 'query'}.csv\""
|
|
|
+ send_data csv_data(@columns, @rows, @data_source), type: "text/csv; charset=utf-8; header=present", disposition: "attachment; filename=\"#{@query.try(:name).try(:parameterize).presence || 'query'}.csv\""
|
|
|
end
|
|
|
end
|
|
|
end
|
|
@@ -240,18 +240,17 @@ module Blazer
|
|
|
params.require(:query).permit(:name, :description, :statement, :data_source)
|
|
|
end
|
|
|
|
|
|
- def csv_data(columns, rows)
|
|
|
+ def csv_data(columns, rows, data_source)
|
|
|
CSV.generate do |csv|
|
|
|
csv << columns
|
|
|
rows.each do |row|
|
|
|
- csv << row.each_with_index.map { |v, i| v.is_a?(Time) ? blazer_time_value(columns[i], v) : v }
|
|
|
+ csv << row.each_with_index.map { |v, i| v.is_a?(Time) ? blazer_time_value(data_source, columns[i], v) : v }
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
|
|
|
- def blazer_time_value(k, v)
|
|
|
- # yuck, instance var
|
|
|
- @data_source.local_time_suffix.any? { |s| k.ends_with?(s) } ? v.to_s.sub(" UTC", "") : v.in_time_zone(Blazer.time_zone)
|
|
|
+ def blazer_time_value(data_source, k, v)
|
|
|
+ data_source.local_time_suffix.any? { |s| k.ends_with?(s) } ? v.to_s.sub(" UTC", "") : v.in_time_zone(Blazer.time_zone)
|
|
|
end
|
|
|
helper_method :blazer_time_value
|
|
|
end
|