Update : Thanks to Matt S. Trout who enlightened some issues with the first version of Coat, I’m currently rewriting it (most of the parts actually). The module has been removed from the CPAN until I have a version with a better code base. The work is going on nicely and Coat is getting better and better every day, you can check the SVN version if you like to see where we are.
The history is simple: I had to write an API at work, I planed to write it with Moose. It was a good idea until I found out the company I work for was planning to release the code to their customers, meaning some of them under Windows systems.
Forcing Moose in the deployment was not possible according to my co-workers, they didn’t want to take a risk to complexify the deployment procedure with such a huge set of dependencies.
Then I started thinking about what I liked in Moose and realized the stuff I used didn’t justify such a huge set of deps. Basically I use the accessors automagic, the inheritance and the hooks. “Why not having a tiny module that provide that ?” I thought.
Then I got caught in a 3-days-evil-coding-whirl that has just unleashed me. Coat is born.
I know, I know, there is Moose::Tiny somewhere, bu it was too late when I found out. Coat was near to be released and nothing could stop it.