Class: Hash

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

Overview

JSON_TYPES = {} unless defined? JSON_TYPES JSON_TYPES = lambda do |v|

v.nil? ? nil : v.to_date

end JSON_TYPES = lambda do |v|

v.nil? ? nil : v.to_time

end # JSON_TYPES = lambda do |v| # v.nil? ? nil : v.to_datetime # end JSON_TYPES = lambda do |v|

# format '2012-04-21T00:00:00+0200'
v.nil? ? nil : DateTime.parse(v).to_time

end

Instance Method Summary collapse

Instance Method Details

#json_typify!Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/pg_json/sequel/pg_json.rb', line 24

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)
        self[k] = if v =~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\+([0-9]{4}|[0-9]{2}:[0-9]{2})/
          DateTime.parse(v).to_time
        elsif v =~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/
          v.to_date
        elsif v =~ /^[0-9]{2}:[0-9]{2}:[0-9]{2}$/
          v.to_time
        else
          v
        end
      end
    end
  end
end

#recursively_symbolize_keys!Object



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/pg_json/sequel/pg_json.rb', line 46

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