FullMapper README
This is a purely experimental attempt to build a minimalistic consistent ORM on base of DataObjects and pieces of dm-core. Make the API small, but without silly bugs and easy to extend and hack.
TODO
- include FM::Resource into modules as well as classes
- specify indexes separately of properties
- extract all the additionaly params and lazy naming conventions into separate modules
- keep all globals-level configuartions in a separate files
- fully map instances and collections into memory: remove the need in manual #reload
- pluggable strategies for caching, sharding and delayed execution.
- minimal public API. E.g. do not use attribute_set when redefining accessor, rather call super and use an anonymous module with the default definition to catch the value.
- consistent chainable collections and kick-methods.
- cache invalidation api for the raw-sql interface (specify how to invalidate sparse identity/collection maps when sql is executed). apply for any kind of backend as well.
- extensible consistent polymorphism features:
- polymorphic instances
- polymorphic associations
- effective "late binding" proxy entities for partial polymorphic relations
(people and projects can host activities, folders, documents etc.)
- chainable storages (ram <-> memcache <-> backend1 <-> backend2)