275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
|
# File 'lib/spiderfw/model/storage/document/adapters/mongodb.rb', line 275
def postprocess_result(h, model=nil)
model ||= @model
sh = {}
h.each do |k, v|
if k == :_id
pks = model.split_keys_string(v)
model.primary_keys.each_with_index do |pk, i|
pkval = pks[i]
pkval = storage_value_to_mapper(pk.type, pkval)
sh[pk.name] = pks[i]
end
else
el = model.elements[k]
v = if v.is_a?(Hash)
postprocess_result(v, el.model)
elsif v.is_a?(Array)
v.map{ |row| postprocess_result(row, el.model) }
else
v
end
sh[k] = v
end
end
sh
end
|