From my last post, you probably realized that I think ubercart should delegate as much as it can it's tasks and join forces with other modules.
I have another idea, but first the use case:
Role expire - that's a task people in the Drupal community need regardless of their use with ubercart. Rigt now there's uc_roles that implements this functionlity (which we can say is Drupal general) and ties it with its own functionlity.
Today I have rewrote the role expire module http://drupal.org/node/455436 with the following thing in mind:
1) uc_roles will be split. The role expire functionality will be used by 'role expire' module, taking care off settings the expired time, configuration, Views integration, cron tasks, etc.'
2) role_expire.ca.inc can be added there like role_expire.rules.inc is there.
3) User's can have their own custom messages on role expire (just need to add a Rules event).
4A) uc_roles will use role expire API, and not deal withit itself, just add Ubercart functionality.
or
4B) will have uc_thingy that allows purchasing 'something', and will have a handler that tells it to use the role_expire, which is simillar to 4A only more abstracted.
What do you think?
