Sha256: 479b5c6665af88e9e1fa7700c2c4cf31baffb31165977e990a6f286499f8df79
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
require 'spec_helper' describe Csv2hash::Parser::Collection do let(:definition) do Csv2hash::Definition.new [ { position: 0, key: 'name' } ], Csv2hash::Definition::COLLECTION end let(:data_source) { [ [ 'John Doe' ], [ 'Jane Doe' ] ] } let(:ignore_blank_line) { false } subject do Csv2hash::Main.new(definition, data_source, ignore_blank_line: ignore_blank_line) end context 'regular way' do it { expect { subject.parse }.to_not raise_error } it { expect(subject.tap do |parser| parser.parse end.data).to eql({ data: [ { 'name' => 'John Doe' }, { 'name' => 'Jane Doe' } ] }) } context 'with header' do before { subject.definition.header_size = 1 } let(:data_source) { [ [ 'Name' ], [ 'John Doe' ], [ 'Jane Doe' ] ] } it { expect(subject.tap { |c| c.parse }.data).to eql( { data: [ { 'name' => 'John Doe' }, { 'name' => 'Jane Doe' } ] }) } end end context 'with nested' do let(:data_source) { [ [ 'John Doe', 22 ], [ 'Jane Doe', 19 ] ] } before do definition.rules << { position: 1, key: 'age', nested: 'infos' } end it { expect(subject.tap { |c| c.parse }.data).to eql( { data: [ { 'name' => 'John Doe', 'infos' => { 'age' => 22 } }, { 'name' => 'Jane Doe', 'infos' => { 'age' => 19 } } ] } ) } end context '#ignore_blank_line' do let(:data_source) { [ [ 'John Doe' ], [ 'Jane Doe' ], [ nil ] ] } let(:ignore_blank_line) { true } it { expect(subject.tap do |parser| parser.parse end.data).to eql({ data: [ { 'name' => 'John Doe' }, { 'name' => 'Jane Doe' } ] }) } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
csv2hash-0.5.0 | spec/csv2hash/parser/collection_spec.rb |