Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/pg_json/sequel/pg_json.rb
Overview
end
Instance Method Summary collapse
- #json_typify! ⇒ Object
-
#recursively_symbolize_keys! ⇒ Object
- def json_typify! replacements = [] self.each do |k, v| if v.is_a? Hash if v if v # puts “:
-
#vv.inspect“ replacements << [k, JSON_TYPES[v.to_sym].call(v)] else replacements << [k, nil] end else v.json_typify! end elsif v.is_a? Array v.json_typify! end end replacements.each do |r| k, v = r self = v end end.
Instance Method Details
#json_typify! ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/pg_json/sequel/pg_json.rb', line 19 def json_typify! self.each do |k, v| if v.is_a? Hash v.json_typify! elsif v.is_a? Array v.json_typify! else if !v.nil? && v.is_a?(String) if m = (v =~ /^date:/) self[k] = v[5..-1] elsif m = (v =~ /^timestamp:/) self[k] = v[10..-1] elsif m = (v =~ /^time:/) self[k] = v[5..-1] end end end end end |
#recursively_symbolize_keys! ⇒ Object
def json_typify!
replacements = []
self.each do |k, v|
if v.is_a? Hash
if v[:__type__]
if v[:value]
# puts "::: #{v.inspect}"
replacements << [k, JSON_TYPES[v[:__type__].to_sym].call(v[:value])]
else
replacements << [k, nil]
end
else
v.json_typify!
end
elsif v.is_a? Array
v.json_typify!
end
end
replacements.each do |r|
k, v = r
self[k] = v
end
end
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/pg_json/sequel/pg_json.rb', line 62 def recursively_symbolize_keys! self.symbolize_keys! self.values.each do |v| if v.is_a? Hash v.recursively_symbolize_keys! elsif v.is_a? Array v.recursively_symbolize_keys! end end self end |