-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
Class Commons has been fixed for a while now, and perhaps it's time to shake it up a little, fix our grievances, and clean it up.
I had some ideas regarding a new, cleaner interface. In particular, the ugliest wart of Class Commons, in my opinion, is that it relies on globals. I have devised a way around this, but it also has this wonderfully hacky feel to it, so I welcome all feedback.
If anyone else has ideas, or proposals, please do share, I think we should generally strive to keep the specification as stable as possible.
Without further ado:
- A class commons implementation inspects
package.loaded["class.commons"], if it does not exist it provides it, as if it were thecommontable from before. - A class commons user uses
pcall(require, "class.commons")to find its implementation. - Local fallback implementations for users are allowed (as before) and encouraged (maybe? that sounds like a lot of duplicate work), but shall remain local to that user. That is, if there is no class commons implementation already available, a library using class commons shall not provide one to anything but itself.
This means we can get rid of both globals, and package.loaded/require are used as direct replacements.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels