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