Method: ActiveRecord::ConnectionAdapters::PostgreSQLColumn::Cast#string_to_hstore

Defined in:
lib/active_record/connection_adapters/postgresql/cast.rb

#string_to_hstore(string) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/active_record/connection_adapters/postgresql/cast.rb', line 48

def string_to_hstore(string)
  if string.nil?
    nil
  elsif String === string
    Hash[string.scan(HstorePair).map { |k, v|
      v = v.upcase == 'NULL' ? nil : v.gsub(/\A"(.*)"\Z/m,'\1').gsub(/\\(.)/, '\1')
      k = k.gsub(/\A"(.*)"\Z/m,'\1').gsub(/\\(.)/, '\1')
      [k, v]
    }]
  else
    string
  end
end