class DataMapper::Property::PgHStore
Public Instance Methods
dump(value)
click to toggle source
# File lib/dm-postgres-types/property/pg_hstore.rb, line 18 def dump(value) return "" unless value value.map { |key, val| %Q{"#{key.to_s}"=>"#{escape_nil(val)}"} }.join(", ") end
load(value)
click to toggle source
# File lib/dm-postgres-types/property/pg_hstore.rb, line 8 def load(value) return nil unless value values = value.split(", ") values.map! do |val| k, v = val.split("=>") [unescape_double_quote(k),unescape_double_quote(unescape_nil(v))] end Hash[*(values.flatten)] end
Private Instance Methods
escape_nil(value)
click to toggle source
# File lib/dm-postgres-types/property/pg_hstore.rb, line 25 def escape_nil(value) (value.nil?) ? 'NULL' : value end
unescape_double_quote(value)
click to toggle source
# File lib/dm-postgres-types/property/pg_hstore.rb, line 33 def unescape_double_quote(value) value.gsub!('"','') value.strip! value end
unescape_nil(value)
click to toggle source
# File lib/dm-postgres-types/property/pg_hstore.rb, line 29 def unescape_nil(value) (value == 'NULL') ? nil : value end