Module: JavyTool::Csv::ClassMethods
- Defined in:
- lib/javy_tool/csv.rb
Instance Method Summary collapse
-
#to_csv(options = {}, &block) ⇒ Object
used to export xls or csv file need to extend in model use like following: format.xls @checkinouts.to_csv(col_sep: “t”) or select_columns = “id,name,user_id” format.xls @checkinouts.select(_select_columns).to_csv(select: _select_columns).
Instance Method Details
#to_csv(options = {}, &block) ⇒ Object
used to export xls or csv file need to extend in model use like following:
format.xls {send_data @checkinouts.to_csv(col_sep: "\t")}
or
select_columns = "id,name,user_id"
format.xls {send_data @checkinouts.select(_select_columns).to_csv(select: _select_columns)}
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/javy_tool/csv.rb', line 12 def to_csv( = {},&block) select_values = .delete(:select) objs = .delete(:objs) # model instances list select_values = select_values.split(",").collect{|e| e.split(/\s+|\./).last} if select_values.kind_of?(String) [:col_sep] ||= "\t" CSV.generate() do |csv| cols = select_values.presence || column_names csv << cols (objs || all).each do |item| if block_given? csv << yield(item,cols) else csv << item.attributes.values_at(*cols) end end end end |