lib/biomart/dataset.rb in biomart-0.2.2 vs lib/biomart/dataset.rb in biomart-0.2.3

- old
+ new

@@ -221,11 +221,11 @@ ['//FilterDescription','//FilterDescription/Option'].each do |filter_xpath| REXML::XPath.each( document, filter_xpath ) do |f| if f.attributes["displayType"] != nil next if f.attributes["displayType"] == "container" @filters[ f.attributes["internalName"] ] = Filter.new( f.attributes ) - else f.attributes["pointerFilter"] != nil + elsif f.attributes["pointerFilter"] != nil pointer_filter = Filter.new( f.attributes ) @filters[ pointer_filter.name ] = pointer_filter @filters[ pointer_filter.pointer_filter ] = pointer_filter end end @@ -335,11 +335,11 @@ parsed_data = parse_tsv_line_by_line( headers.size, tsv ) end else # Ruby >= 1.9 CSV code begin - parsed_data = CSV.parse( tsv, { :col_sep => "\t" } ) + parsed_data = CSV.parse( tsv, { :col_sep => "\t", :skip_blanks => true } ) rescue CSV::MalformedCSVError => e parsed_data = parse_tsv_line_by_line( headers.size, tsv ) end end @@ -376,14 +376,14 @@ data_by_line.each do |line| elements = [] if CSV.const_defined? :Reader # Ruby < 1.9 CSV code - elements = CSV::parse_line( line, "\t" ) + elements = CSV::parse_line( line, "\t" ) || [] else # Ruby >= 1.9 CSV code begin - elements = CSV::parse_line( line, { :col_sep => "\t" } ) + elements = CSV::parse_line( line, { :col_sep => "\t" } ) || [] rescue CSV::MalformedCSVError => e elements = [] end end \ No newline at end of file