Sha256: d0e3a3acd07ecb188e816505e17f4c244b3a8a192b272833bb5b5e7e26c9962b
Contents?: true
Size: 1004 Bytes
Versions: 2
Compression:
Stored size: 1004 Bytes
Contents
require 'csv' module CsvRails module Array def self.included(base) base.send(:remove_method, :to_csv) base.send(:include, CsvRails::Array::InstanceMethods) end module InstanceMethods # ==== Options # * <tt>:fields</tt> - target field names # * <tt>:header</tt> - header # * <tt>:without_header</tt> - total_count # * <tt>:encoding</tt> - encoding def to_csv(opts={}) fields = opts[:fields] header = if opts[:header] opts.delete(:header) elsif (klass = first.class).respond_to?(:csv_header) klass.csv_header(fields) else fields end csv = CSV.generate do |_csv| _csv << header unless opts[:without_header] each do |element| _csv << element.to_csv_ary(fields, opts) end end opts[:encoding] ? csv.encode(opts[:encoding]) : csv end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
csv_rails-0.5.1 | lib/csv_rails/array.rb |
csv_rails-0.5.0 | lib/csv_rails/array.rb |