Wizards Suck – Need More VersionsJuly 17, 2008 at 06:58 | Posted in Uncategorized | Leave a comment
I have been working on an update wizard for CPANPLUS->Selfupdate(). It is proving to be harder than I thought. I am getting pretty frustrated, so I decided to take a break and work on implementing a feature I almost forgot – working with different versions. I have edited all the code for the ModuleTree->_install_module() and related methods. They all use parse_module() instead of module_tree() in order to obtain a versioned copy of the module. The new function calls look like $tree->_*_module($modname|$mod|$fakemod [, $version]). This method is a LOT safer, anyway. Any time I need a list of modules, I loop through the list of names and convert to modules.
I believe I am at the point where I need to re-write some code. The ModuleTree is not truly Object-Oriented, and looks for other widgets. This needs to be fixed, since it does not _contain_ the other widgets. I am working on writing a Wx::Panel class called ModulePanel that is the Wx::Panel in the Module tab in the main notebook. It holds all the info tabs and can handle the same methods as ModuleTree, so we need not re-write any other interfaces. With the new interface design, anyone can embed just the ModuleTree widget to display modules and use fetch(), etc. on them. I may even make it a sub-class of CPANPLUS::Backend, so all you would need for a backend is the list. It will definitely have a SetCPP() function for setting the backend to an existing object.
Also – I will be working pretty hard today and tomorrow on this, as I have a family reunion to go to this weekend!