econsultancy / csv_builder

CSV template Rails plugin

csv_builder / README
100644 61 lines (39 sloc) 1.738 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
= CSV Builder
 
The CSV Builder Rails plugin provides a simple templating system for serving
dynamically generated CSV files from your application.
 
 
== Requirements
 
CSV Builder requires Rails v2.1.
 
It also depends upon the FasterCSV gem http://fastercsv.rubyforge.org,
which you can install with
 
  $ sudo gem install fastercsv
 
Encoding conversions are done with Iconv, so make sure you have it on your
development/production machine.
 
== Example
 
CSV template files are suffixed with '.csv.csvbuilder', for example
'index.csv.csvbuilder'
 
Add rows to your CSV file in the template by pushing arrays of columns into the
csv object.
 
   # First row
   csv << [ 'cell 1', 'cell 2' ]
   # Second row
   csv << [ 'another cell value', 'and another' ]
   # etc...
 
You can set the default filename for that a browser will use for 'save as' by
setting <tt>@filename</tt> instance variable in your controller's action method
e.g.
 
  @filename = 'report.csv'
 
You can set the input encoding and output encoding by setting
<tt>@input_encoding</tt> and <tt>@output_encoding</tt> instance variables.
These default to 'UTF-8' and 'LATIN1' respectively. e.g.
 
  @output_encoding = 'UTF-8'
 
You can set <tt>@csv_options</tt> instance variable to define options for
FasterCSV generator. For example:
 
  @csv_options = { :force_quotes => true, :col_sep => ';' }
 
You can also attach a csv file to mail sent out by your application by
including a snippet like the following in your mailer method
 
  attachment "text/csv" do |attachment|
    attachment.body = render(:file => 'example/index.csv.csvbuilder')
    attachment.filename = 'report.csv'
  end
 
 
Copyright (c) 2008 Econsultancy.com and 2009 Vidmantas Kabošis, released under
the MIT license.