In Ruby, how can I traverse an arbitrary document retrieved from a collection using something like mongomapper? Let's say the document looks something like this:
mydocs = [{
"title": "my title",
"description": "hello world",
"comments": [{
"user": "me",
"text": "this"
}, {
"user": "him",
"text": "that"
}]
},
{
.....
}
]
def traverse(obj, level=0, name='root')
s = " "*level + name.to_s + ": "
if obj.is_a?(Array)
puts s
obj.each_with_index{ |child,idx| traverse(child,level+1,idx) }
elsif obj.is_a?(Hash)
puts s
obj.each{ |k,v| traverse(v,level+1,k) }
else
puts s + obj.inspect
end
end
traverse mydocs