Extract the “described” builder and add specs

And thanks to @noniq for forcing me to write specs and fix a couple of bugs (it was only working with rails projects).