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 62 63 64 65 66 67 68 69 70 71 72 73 74
|
require File.expand_path('../../../spec_helper', __FILE__)
require 'csv'
require 'tempfile'
describe "CSV.generate" do
ruby_version_is "" ... "1.9" do
before :each do
@outfile_name = tmp("generate_test_#{$$}.csv")
end
it "creates a BasicWriter" do
writer = CSV::generate(@outfile_name)
writer.should be_kind_of(CSV::BasicWriter)
writer.close
end
it "accepts a field separator" do
writer = CSV::generate(@outfile_name, ",")
writer.should be_kind_of(CSV::BasicWriter)
writer.close
end
it "accepts a row separator" do
writer = CSV::generate(@outfile_name, ".")
writer.should be_kind_of(CSV::BasicWriter)
writer.close
end
it "creates a BasicWriter to use in a block" do
CSV::generate(@outfile_name) do |writer|
writer.should be_kind_of(CSV::BasicWriter)
end
end
it "creates a BasicWriter with ; as the separator inside the block" do
CSV::generate(@outfile_name, ?;) do |writer|
writer.should be_kind_of(CSV::BasicWriter)
end
end
after :each do
rm_r @outfile_name
end
end
ruby_version_is "1.9" do
it "returns CSV string" do
csv_str = CSV.generate do |csv|
csv.add_row [1, 2, 3]
csv << [4, 5, 6]
end
csv_str.should == "1,2,3\n4,5,6\n"
end
it "accepts a col separator" do
csv_str = CSV.generate(:col_sep => ";") do |csv|
csv.add_row [1, 2, 3]
csv << [4, 5, 6]
end
csv_str.should == "1;2;3\n4;5;6\n"
end
it "appends and returns the argument itself" do
str = ""
csv_str = CSV.generate(str) do |csv|
csv.add_row [1, 2, 3]
csv << [4, 5, 6]
end
csv_str.object_id.should == str.object_id
str.should == "1,2,3\n4,5,6\n"
end
end
end
|