Hi! This is my first public elixir library. I hope someone can benefit from it, as I ceased to work with this nice language at the moment.
DeepDive is an extremely simple library to explore a complex and possibly unknown data structures in search of keys that sound. I developed an early stub to explore a deeply nested
Absinthe.Resolution struct I needed to get hold of. It treats everything as a map and every map as a tree. It offers two different strategies to explore the tree in search for nodes (the keys) that match some pattern:
DeepDive.FirstFoundlooks for the first match on each branch and returns
DeepDive.FullWalklooks for each match on the whole tree
The interface is a single function,
find_key/2, that wants the data structure as first argument and a
matcher as second argument. A matcher may be:
- an exact value to match
- a regex
- a function of kind
(term -> bool)
Peek into the documentation for more info.
I used to put an
IEx.pry() near the code I needed to examine and, from there, call the function on the data. I suggest to install the library only in the
:dev mix environment.
Have fun and use the github issues to signal any problem.