lib/rets4r/client/parser.rb in rets4r-0.8.4 vs lib/rets4r/client/parser.rb in rets4r-0.8.5

- old
+ new

@@ -100,11 +100,13 @@ end end def parse_compact_line(data, delim = "\t") begin - return data.to_s.split(delim) + # We need to remove the beginning and ending delimiters prior to splitting + string_data = data.to_s + return string_data[1, string_data.length - 2].split(delim, -1) rescue raise "Error while parsing compact line: #{$!} with data: #{data}" end end @@ -112,10 +114,14 @@ results = Data.new(@current[-2]) parsed_data = parse_compact_line(data, @transaction.ascii_delimiter) header.length.times do |pos| - results[header[pos]] = parsed_data[pos] + # The removal of delimiters in #parse_compact_line prevents blank fields in newer + # version of Ruby, but on older versions (specifically 1.8.5 from 2006) a blank + # field would still manage to sneak in, so we now explicitly prevent them from going + # to the results. + results[header[pos]] = parsed_data[pos] unless header[pos].nil? || header[pos].strip == "" end results end \ No newline at end of file