Class: Rackful::Parser::JSON

Inherits:
Rackful::Parser show all
Defined in:
lib/rackful/parser.rb

Constant Summary

MEDIA_TYPES =
[
  'application/json',
  'application/x-json'
]

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

This class inherits a constructor from Rackful::Parser

Instance Attribute Details

- (Request) request (readonly) Originally defined in class Rackful::Parser

Returns:

- (Resource) resource (readonly) Originally defined in class Rackful::Parser

Returns:

Instance Method Details

- (void) parse



282
283
284
285
286
287
288
# File 'lib/rackful/parser.rb', line 282

def parse
  r = ::JSON.parse(
    self.request.env['rack.input'].read,
    :symbolize_names => true
  )
  self.recursive_datetime_parser r
end

- (void) recursive_datetime_parser(p)



291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
# File 'lib/rackful/parser.rb', line 291

def recursive_datetime_parser p
  if p.kind_of?(String)
    begin
      return Time.xmlschema(p)
    rescue
    end
  elsif p.kind_of?(Hash)
    p.keys.each do
      |key|
      p[key] = self.recursive_datetime_parser( p[key] )
    end
  elsif p.kind_of?(Array)
    (0 ... p.size).each do
      |i|
      p[i] = self.recursive_datetime_parser( p[i] )
    end
  end
  p
end