## Bake could use some updates Baking all views or all models or all controllers {{{ cake bake view all cake bake controller all cake bake model all }}} These extra commands come up quite a bit and I think the `view all` can be really useful in the future with additional bake templates being created. Also its an often requested feature, so will be nice to have. ### Bake UI I think some of the questions in bake can be a bit ambiguous. I would really like to try and get some feedback from the community and new users as well as old users on ways we can improve the bake UI and make it easier to understand and more powerful. ### Bake All This change to bake will help facilitate adding the `bake XXX all` As each task can implement an `all` method. Lastly it will help us break out fixture and test generation into their own Tasks. ### Test baking Test baking should be able to introspect the non inherited methods and generate test skeletons for all found methods. ### Fixture baking Fixture baking should be broken out and you should be able to bake a fixture without needing to make a model and or test case. `cake bake fixture` ### Task Hit List All Tasks need serious refactoring and cleanup. There is a lot of cruft left over from 1.1 era and it needs to be polished up. Also there are very few tests for bake & bake tasks. The goal would be to refactor and clean, while adding tests. As well as expanding the features of bake. * Model **Complete 81.96% coverage** * Controller **Complete 76.12% coverage** * View **Complete 83.63% coverage** * Plugin * Project * DbConfig **86.31% coverage** * Template _New_ **Complete 80.65% coverage** * Test _New_ **Complete 94.89% coverage** * Fixture _New_ **Complete 80% coverage** Complete means the first round (probably only round) of refactoring is complete, and initial tests have been added. New indicates a totally New task or a radically rebuilt Task. If anyone would like to add tests to any Task please feel free to. The Controller and Model task are in the most need of additional test coverage. ### Plugin and Connection params These are new in this iteration of bake. Due to the restructuring of bake all tasks now have access to all connections, as well as plugins. But when done you will be able to bake into plugins on any $pluginPath and with any connection. This should greatly enhance the baking experience. ### Bake themes With the new ability to template bake output the logical conclusion is to allow for template sets to be packagable and distributable. Bake templates can be placed on any `vendors` path, e.g. `app/vendors/shells/templates/my_theme_name`. The theme dir will contain the following directories. * **classes** contains the templates for class objects, (model, fixture, test, controller) * **views** contains the templates for baked actions * **actions** contains the templates for controller actions. When more than one template theme is installed The `TemplateTask` will ask for further clarification on which template set should be used. This question can be supressed with `-theme foobar` param in interactive modes, or in non-interactive modes the first found template set will be used.