From e0701cbf92287f77ebcb4b5c61ddc5483365c0e7 Mon Sep 17 00:00:00 2001 From: Dan Porter Date: Thu, 2 Aug 2012 11:30:47 -0700 Subject: [PATCH 1/3] Update rspec version dependency --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index fc10f7c..6ef0ff5 100644 --- a/Rakefile +++ b/Rakefile @@ -10,7 +10,7 @@ begin gem.email = "lpillow@gmail.com" gem.homepage = "http://github.com/pillowfactory/csv-mapper" gem.authors = ["Luke Pillow"] - gem.add_development_dependency "rspec", ">= 1.2.9" + gem.add_development_dependency "rspec", "< 2.0.0" gem.add_dependency "fastercsv" gem.extra_rdoc_files << "History.txt" # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings From eae51086d745c6500973606ade6f014c1cd058e3 Mon Sep 17 00:00:00 2001 From: Dan Porter Date: Thu, 2 Aug 2012 11:31:39 -0700 Subject: [PATCH 2/3] Fix issues with running "rake spec" --- Rakefile | 2 -- spec/csv-mapper/attribute_map_spec.rb | 2 +- spec/csv-mapper/row_map_spec.rb | 2 +- spec/csv-mapper_spec.rb | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Rakefile b/Rakefile index 6ef0ff5..6698428 100644 --- a/Rakefile +++ b/Rakefile @@ -32,8 +32,6 @@ Spec::Rake::SpecTask.new(:rcov) do |spec| spec.rcov = true end -task :spec => :check_dependencies - task :default => :spec require 'rake/rdoctask' diff --git a/spec/csv-mapper/attribute_map_spec.rb b/spec/csv-mapper/attribute_map_spec.rb index acd8461..bb0074f 100644 --- a/spec/csv-mapper/attribute_map_spec.rb +++ b/spec/csv-mapper/attribute_map_spec.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../spec_helper.rb' +require File.expand_path(__FILE__ + '/../../spec_helper.rb') describe CsvMapper::AttributeMap do diff --git a/spec/csv-mapper/row_map_spec.rb b/spec/csv-mapper/row_map_spec.rb index c6c4a19..6c35b89 100644 --- a/spec/csv-mapper/row_map_spec.rb +++ b/spec/csv-mapper/row_map_spec.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../spec_helper.rb' +require File.expand_path(__FILE__ + '/../../spec_helper.rb') describe CsvMapper::RowMap do diff --git a/spec/csv-mapper_spec.rb b/spec/csv-mapper_spec.rb index e12628c..4b328c2 100644 --- a/spec/csv-mapper_spec.rb +++ b/spec/csv-mapper_spec.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/spec_helper.rb' +require File.expand_path(__FILE__ + '/../spec_helper.rb') describe CsvMapper do describe "included" do From e624d7321cf4ba3a85cf4a6930377a2aaae6fc8c Mon Sep 17 00:00:00 2001 From: Dan Porter Date: Thu, 2 Aug 2012 12:07:36 -0700 Subject: [PATCH 3/3] Fix issue #1 read_attributes_from_file should use the correct delimiter when one is set via delimited_by --- lib/csv-mapper/row_map.rb | 2 +- spec/csv-mapper_spec.rb | 11 +++++++++++ spec/test.tsv | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 spec/test.tsv diff --git a/lib/csv-mapper/row_map.rb b/lib/csv-mapper/row_map.rb index e1ad9ef..143a669 100644 --- a/lib/csv-mapper/row_map.rb +++ b/lib/csv-mapper/row_map.rb @@ -49,7 +49,7 @@ def map_to(klass, defaults={}) # # i.e. read_attributes_from_file('files+' => 'files_plus', 'files-' => 'files_minus) def read_attributes_from_file aliases = {} - attributes = FasterCSV.new(@csv_data, @parser_options).readline + attributes = FasterCSV.new(@csv_data, parser_options).readline @start_at_row = [ @start_at_row, 1 ].max @csv_data.rewind attributes.each_with_index do |name, index| diff --git a/spec/csv-mapper_spec.rb b/spec/csv-mapper_spec.rb index 4b328c2..9294aa8 100644 --- a/spec/csv-mapper_spec.rb +++ b/spec/csv-mapper_spec.rb @@ -63,6 +63,17 @@ def upcase_name(row, index) results[1].number_of_years_old.should == '26' end + it "should read attributes from a non-comma delimited file" do + results = @mapped.import(File.dirname(__FILE__) + '/test.tsv') do + delimited_by "\t" + read_attributes_from_file('Age' => 'number_of_years_old') + end + + results[1].first_name.should == 'Jane' + results[1].last_name.should == 'Doe' + results[1].number_of_years_old.should == '26' + end + it "should import non-comma delimited files" do piped_io = 'foo|bar|00|01' diff --git a/spec/test.tsv b/spec/test.tsv new file mode 100644 index 0000000..22609e4 --- /dev/null +++ b/spec/test.tsv @@ -0,0 +1,4 @@ +First Name Last Name Age +John Doe 27 +Jane Doe 26 +Bat Man 52