diff --git a/lib/csv.rb b/lib/csv.rb index 509e978..9bb1830 100644 --- a/lib/csv.rb +++ b/lib/csv.rb @@ -1854,7 +1854,7 @@ def shift parts.each do |part| if in_extended_col # If we are continuing a previous column - if part[-1] == @quote_char && part.count(@quote_char) % 2 != 0 + if part.end_with?(@quote_char) && part.count(@quote_char) % 2 != 0 # extended column ends csv.last << part[0..-2] if csv.last =~ @parsers[:stray_quote] @@ -1867,14 +1867,14 @@ def shift csv.last << part csv.last << @col_sep end - elsif part[0] == @quote_char + elsif part.start_with?(@quote_char) # If we are starting a new quoted column if part.count(@quote_char) % 2 != 0 # start an extended column csv << part[1..-1] csv.last << @col_sep in_extended_col = true - elsif part[-1] == @quote_char + elsif part.end_with?(@quote_char) # regular quoted column csv << part[1..-2] if csv.last =~ @parsers[:stray_quote]