For the implementation I started from Andrew Peters implementation (I don’t need to reinvent every thing and thanks to Andrew to allow me to use his code). After that I was working in some refactoring, extensions and so on in order to have what we may need to use for NHibernate.
So far both implementation are working pretty well and for table name is supporting even composed words as:
given CostomerOrder as class name the table name will be CostomerOrders.
The code is available here.
Now I’m starting the improvement of NHibernate’s INamingStrategy in order provide some more information to choose the right Table/Column name for a given Class/Property name. By the way the Inflector can be used outside INamingStrategy as, for example, in FluentNHibernate convention.
I’m needing some help to “massacre” the implementation so if you want play with uNhAddIns Inflector’s tests you are welcome (especially for the Spanish Inflector).