Class | Sequel::Postgres::HStore |
In: |
lib/sequel/extensions/pg_hstore_ops.rb
lib/sequel/extensions/pg_hstore.rb |
Parent: | Object |
DEFAULT_PROC | = | lambda{|h, k| h[k.to_s] unless k.is_a?(String)} | Default proc used for all underlying HStore hashes, so that even if you grab the underlying hash, it will still convert non-string keys to strings during lookup. |
__getobj__ | -> | to_hash |
Return the underlying hash used by this HStore instance. |
Use custom marshal loading, since underlying hash uses a default proc.
# File lib/sequel/extensions/pg_hstore.rb, line 197 197: def self._load(args) 198: new(Hash[Marshal.load(args)]) 199: end
Use custom marshal dumping, since underlying hash uses a default proc.
# File lib/sequel/extensions/pg_hstore.rb, line 229 229: def _dump(*) 230: Marshal.dump(to_a) 231: end
Override to force the key argument to a string.
# File lib/sequel/extensions/pg_hstore.rb, line 234 234: def fetch(key, *args, &block) 235: super(key.to_s, *args, &block) 236: end
Append a literalize version of the hstore to the sql.
# File lib/sequel/extensions/pg_hstore.rb, line 248 248: def sql_literal_append(ds, sql) 249: ds.literal_append(sql, unquoted_literal) 250: sql << '::hstore' 251: end
Return a string containing the unquoted, unstring-escaped literal version of the hstore. Separated out for use by the bound argument code.
# File lib/sequel/extensions/pg_hstore.rb, line 256 256: def unquoted_literal 257: str = String.new 258: comma = false 259: commas = "," 260: quote = '"' 261: kv_sep = "=>" 262: null = "NULL" 263: each do |k, v| 264: str << commas if comma 265: str << quote << escape_value(k) << quote 266: str << kv_sep 267: if v.nil? 268: str << null 269: else 270: str << quote << escape_value(v) << quote 271: end 272: comma = true 273: end 274: str 275: end