Sha256: 5dce25fdbb7e031c55a0f76c49febffbc004659e3078d94792399f9dc8c5e60b
Contents?: true
Size: 1.02 KB
Versions: 3
Compression:
Stored size: 1.02 KB
Contents
class ActiveModel::Csverizer::Railtie < Rails::Railtie initializer 'csverizer' do ActiveSupport.on_load(:action_controller) do ActionController::Renderers.add :csv do |object, options| filename = options.fetch(:filename, 'data') begin serializer = if object.respond_to?(:each) hash = options.slice(:each_serializer) ActiveModel::CsvArraySerializer.new(object, hash) else hash = options.slice(:serializer) ActiveModel::CsverizerFactory.new(object, hash) end data = serializer.to_csv # TODO: probably should implement a specialized exception for this # this btw is when a serializer is not found for provided object rescue NameError data = object.respond_to?(:to_csv) ? object.to_csv : object.to_s end send_data( data, type: Mime[:csv], disposition: "attachment; filename=#{filename}.csv" ) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
csverizer-0.0.7 | lib/active_model/csverizer/railtie.rb |
csverizer-0.0.6 | lib/active_model/csverizer/railtie.rb |
csverizer-0.0.5 | lib/active_model/csverizer/railtie.rb |