Class: Hash

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

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
38
39
40
41
# File 'lib/pg_json/sequel/pg_json.rb', line 19

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

#recursively_symbolize_keys!Object



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/pg_json/sequel/pg_json.rb', line 43

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