class Tilt::CSVTemplate

CSV Template implementation. See: ruby-doc.org/stdlib/libdoc/csv/rdoc/CSV.html

Example

# Example of csv template
tpl = <<-EOS
  # header
  csv << ['NAME', 'ID']

  # data rows
  @people.each do |person|
    csv << [person[:name], person[:id]]
  end
EOS

@people = [
  {:name => "Joshua Peek", :id => 1},
  {:name => "Ryan Tomayko", :id => 2},
  {:name => "Simone Carletti", :id => 3}
]

template = Tilt::CSVTemplate.new { tpl }
template.render(self)

Public Class Methods

engine() click to toggle source
   # File lib/tilt/csv.rb
39 def self.engine
40   if RUBY_VERSION >= '1.9.0' && defined? ::CSV
41     ::CSV
42   elsif defined? ::FasterCSV
43     ::FasterCSV 
44   end
45 end

Public Instance Methods

precompiled(locals) click to toggle source
Calls superclass method Template#precompiled
   # File lib/tilt/csv.rb
59 def precompiled(locals)
60   source, offset = super
61   [source, offset + 1]
62 end
precompiled_template(locals) click to toggle source
   # File lib/tilt/csv.rb
51     def precompiled_template(locals)
52       <<-RUBY
53         #{@outvar} = #{self.class.engine}.generate(**#{options}) do |csv|
54           #{data}
55         end
56       RUBY
57     end
prepare() click to toggle source
   # File lib/tilt/csv.rb
47 def prepare
48   @outvar = options.delete(:outvar) || '_csvout'
49 end