A few big changes with this patch. I'm using mocha/stubba for testing because it makes working with this much easier. It also isolates our tests which is nice. I've added a test helper with a couple methods:
delegate_methods_to_mock! and delegate_method_to_mock! take a class and a method (or several methods) as symbols and then redefines them to call a mock instead. It then runs the passed block (which would result in the mock being manipulated) and cleans up. This means the mock is only used in the context of that block which is nifty.
As for using Mocha/Stubba, Flexmock could be used in place of Mocha but the functionality I'm using in Stubba doesn't exist elsewhere. Mocha (which contains Stubba) is under the Ruby license if it makes a difference.