Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/pg_json/sequel/pg_json.rb

Overview

end

Instance Method Summary collapse

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