It's not uncommon to need to do some mapping from one object model to another, whether that's data transfer objects, an anti-corruption layer, or something else. Two projects I've been on have written code similar to this, and I thought it was time to start re-using rather than building from scratch.
You can find more information by reading one of the following:
- the website for Moo
- the automated tests for Moo
More information on the copyright and license can be found in NOTICE and LICENSE respectively, but basically it's BSD licensed and Copyright (C) 2009, Geoffrey Wiseman.