Sha256: 126224e33f0e011d4f050fe78ec25508eeddcc6f94c48c8c221b13981789ca39

Contents?: true

Size: 1.77 KB

Versions: 2

Compression:

Stored size: 1.77 KB

Contents

require 'spec_helper'

describe 'parse with col_sep' do
  let(:options) { {quote_char: '"'} }

  it 'parses with comma' do
    line = "a,b,,d"
    options.merge!({col_sep: ","})
    array, array_size = SmarterCSV.send(:parse, line, options)
    expect(array).to eq ['a', 'b', '', 'd']
    expect(array_size).to eq 4
  end

  it 'parses trailing commas' do
    line = "a,b,c,,"
    options.merge!({col_sep: ","})
    array, array_size = SmarterCSV.send(:parse, line, options)
    expect(array).to eq ['a', 'b', 'c', '', '']
    expect(array_size).to eq 5
  end

  it 'parses with space' do
    line = "a b  d"
    options.merge!({col_sep: " "})
    array, array_size = SmarterCSV.send(:parse, line, options)
    expect(array).to eq ['a', 'b', '', 'd']
    expect(array_size).to eq 4
  end

  it 'parses with tab' do
    line = "a\tb\t\td"
    options.merge!({col_sep: "\t"})
    array, array_size = SmarterCSV.send(:parse, line, options)
    expect(array).to eq ['a', 'b', '', 'd']
    expect(array_size).to eq 4
  end

  it 'parses with multiple space separator' do
    line = "a b    d"
    options.merge!({col_sep: "  "})
    array, array_size = SmarterCSV.send(:parse, line, options)
    expect(array).to eq ['a b', '', 'd']
    expect(array_size).to eq 3
  end

  it 'parses with multiple char separator' do
    line = '<=><=>A<=>B<=>C'
    options.merge!({col_sep: "<=>"})
    array, array_size = SmarterCSV.send(:parse, line, options)
    expect(array).to eq ["", "", "A", "B", "C"]
    expect(array_size).to eq 5
  end

  it 'parses trailing multiple char separator' do
    line = '<=><=>A<=>B<=>C<=><=>'
    options.merge!({col_sep: "<=>"})
    array, array_size = SmarterCSV.send(:parse, line, options)
    expect(array).to eq ["", "", "A", "B", "C", "", ""]
    expect(array_size).to eq 7
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
smarter_csv-1.6.1 spec/smarter_csv/parse/column_separator_spec.rb
smarter_csv-1.6.0 spec/smarter_csv/parse/column_separator_spec.rb