Component system for Ivory functionalities
bclindner opened this issue · comments
Regarding #12, I need to rig Ivory to do multiple things with the driver at a time. Extending the drivers is simple enough, but I want the individual functionalities to be easy to add and remove. A component system seems like the thing to do, where the Ivory class proper loads and runs each component, just like how it loads drivers and rules.
I understand this introduces a design problem for the browser driver - it can't do multiple things at once. Perhaps make the driver a per-component thing?
A design note: I don't see the need in making these dynamically registered and imported as I do with the drivers and rules. I won't need to be adding these that often. They just need to be broken out into a subpackage the Ivory class will work with.
Yeah, this is achieved by just dropping another Python module into the tree at this point and calling it from __main__
.
I realize lately I seriously overthought a lot of this project.