Sha256: 96e1ffacf4f8fa90bf3a9ad4c8ca2d31de8070aab7398cf9b9aad2a5cda28e27
Contents?: true
Size: 1.87 KB
Versions: 12
Compression:
Stored size: 1.87 KB
Contents
require 'contest' require 'tilt' begin if RUBY_VERSION >= '1.9.0' require 'csv' else require 'fastercsv' end class CSVTemplateTest < Test::Unit::TestCase test "is registered for '.csv' files" do assert_equal Tilt::CSVTemplate, Tilt['test.csv'] end test "registered for '.csv' files" do assert Tilt.mappings['csv'].include?(Tilt::CSVTemplate) end test "compiles and evaluates the template on #render" do template = Tilt::CSVTemplate.new { "csv << ['hello', 'world']" } assert_equal "hello,world\n", template.render end test "can be rendered more than once" do template = Tilt::CSVTemplate.new { "csv << [1,2,3]" } 3.times { assert_equal "1,2,3\n", template.render } end test "can pass locals" do template = Tilt::CSVTemplate.new { 'csv << [1, name]' } assert_equal "1,Joe\n", template.render(Object.new, :name => 'Joe') end test "evaluating in an object scope" do template = Tilt::CSVTemplate.new { 'csv << [1, @name]' } scope = Object.new scope.instance_variable_set :@name, 'Joe' assert_equal "1,Joe\n", template.render(scope) end test "backtrace file and line reporting" do data = File.read(__FILE__).split("\n__END__\n").last template = Tilt::CSVTemplate.new('test.csv') { data } begin template.render fail 'should have raised an exception' rescue => boom assert_kind_of NameError, boom line = boom.backtrace.grep(/^test\.csv:/).first assert line, "Backtrace didn't contain test.csv" file, line, meth = line.split(":") assert_equal '4', line end end end rescue LoadError => boom warn "Tilt::CSVTemplate (disabled) please install 'fastercsv' if using ruby 1.8.x" end __END__ # header csv << ['Type', 'Age'] raise NameError # rows csv << ['Frog', 2] csv << ['Cat', 5]
Version data entries
12 entries across 8 versions & 3 rubygems