Traipse allows you to address a data structure with a dot notated string. This is useful for extracting certain nodes in a data structure (expecially JSON-parsed) and storing the ‘path’ to those nodes in a database.
Traipse is available as a RubyGem:
gem install traipse
data = { "name" => "Percival", "board" => { "name" => "cats" }, "categories" => [ { "name" => "animals" }, { "name" => "kitties" }, { "name" => "robots" }, ] } Traipse.find( data, 'name' ) # [ "Percival" ] Traipse.find( data, 'board.name' ) # [ "cats" ] Traipse.find( data, 'categories.name' ) # [ "animals", "kitties", "robots" ] Traipse.find( data, '*.name' ) # [ "cats", "animals", "kitties", "robots" ]
-
Pawel Szymczykowski