spec/ccsv_spec.rb in ccsv-1.0.4 vs spec/ccsv_spec.rb in ccsv-1.1.0
- old
+ new
@@ -49,10 +49,18 @@
@csv << v
end
@csv[15000].must_equal(['15001','30002','15004'])
end
+ it 'reads csv with a multi-character delimiter' do
+ create_csv('|^|')
+ Ccsv.foreach(TEST_CSV,'|^|') do |v|
+ @csv << v
+ end
+ @csv[15000].must_equal(['15001','30002','15004'])
+ end
+
it 'raises error' do
proc {
Ccsv.foreach('/non-existent-file') do |x| end
}.must_raise(RuntimeError)
end
@@ -64,6 +72,18 @@
end
@csv[0].must_equal(['3001','6002','3004'])
@csv.size.must_equal(999)
end
+ it 'reads a line with an escaped delimiter' do
+ open(TEST_CSV, 'w') do |file|
+ file.puts "field1,field2,field3,field\\,with comma,field5"
+ end
+ Ccsv.foreach(TEST_CSV, ',') do |v|
+ v[0].must_equal('field1')
+ v[1].must_equal('field2')
+ v[2].must_equal('field3')
+ v[3].must_equal('field\\,with comma')
+ v[4].must_equal('field5')
+ end
+ end
end