Method: Sequel::Postgres::PGRow::Splitter#parse

Defined in:
lib/sequel/extensions/pg_row.rb

#parseObject

Split the stored string into an array of strings, handling the different types of quoting.



244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
# File 'lib/sequel/extensions/pg_row.rb', line 244

def parse
  values = []
  skip(/\(/)
  if skip(/\)/)
    values << nil
  else
    # :nocov:
    until eos?
    # :nocov:
      if skip(/"/)
        values << scan(/(\\.|""|[^"])*/).gsub(/\\(.)|"(")/, '\1\2')
        skip(/"[,)]/)
      else
        v = scan(/[^,)]*/)
        values << (v unless v.empty?)
        skip(/[,)]/)
      end
    end
  end
  values
end