Module: ClusterPoint::JsonMethods

Included in:
Document
Defined in:
lib/cluster_point/json_methods.rb

Instance Method Summary collapse

Instance Method Details

#as_json(options = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/cluster_point/json_methods.rb', line 3

def as_json(options = nil)
  result = '{'
  coma=''
  self.marshal_dump.each do |k,v| 
    if v.class == Array
      result += "#{coma}\"#{k}\":["
      coma_inner=''
      v.each do |ae|
        result += coma_inner
        result += ae.as_json(options)
        coma_inner=','
      end
      result += "]"
    elsif v != nil
      if v.kind_of? ClusterPoint::Document
        out = v.as_json
      else
        out='"' + v.gsub('"', '\"') + '"'
      end
      result += coma + '"' + k.to_s + '":' + out
    end
    coma=','
  end
  result += '}'
  result
end