What can happen when you feel good and happy is amazing...
First, I was happy already because today I nixed my first segfault of the 64 bit VM. Moreover, I was on a roll fixing detail after detail, test after test, etc. All this made me get into that state...
So I went for dinner and brought my laptop over thinking I'd so some Assessments work. Here is a summary of what happened.
- A third way to do file logging emerged. A dose of the usual, strong mandatory refactoring ensured that no code was duplicated anywhere.
- In order to support the debugging tools (and also some absolutely fantastic items in the to do list) I needed classes that I could not put in any hierarchy. So I employed the technique I used in the Hash Analysis Tool, by which one creates a class the instances of which behave like the classes one would like to have. With just a handful of methods, I created the (more or less) equivalent of virtual TestCases.
- Once those were done, then I did a bit of refactoring to refine the way in which Assessments evaluates check lists. Now it can run checks to failure (the [run to error] button in the test runner), and also pop up a debugger right at the beginning of the test (the [debug] button in the test runner, only skipping all the evaluation machinery and running into its own stack).
- Obviously, there are check lists for all of that, and therefore Assessments assesses itself.
- 394 methods in 74 classes and 3 class extensions, or slightly over 5 methods per class / class extension on average.
- Tbe fileout is less than 135000 bytes long, which translates into under 350 XML fileout bytes per method on average.
assessmentsClasses inject: 13 @ 3 into: [:t :x | t x + x selectors size + x class selectors size @ (t y + 1)]
This gives 394 @ 77, the numbers featured in the statistics above. Sorry about the variable names t and x... on the other hand it's what I use for throw away code.
More to come...