On Mon, Feb 17, 2014 at 07:46:17AM +0100, Jens Rehsack wrote: > Am 16.02.2014 um 16:29 schrieb Tim Bunce <tim.bu...@pobox.com>: > > > > I've renamed Tumbler to Data::Tumbler and polished it up a little > > (and made corresponding changes to both our tumbler.pl files). > > git push eaten by stormy weather?
Oops. Done. Thanks. > > I'm still not very happy about the interface between Data::Tumbler and > > Context, i.e.: [...] > > The first means that $context wouldn't be an object any more (though > > individual settings would) so instead of calling methods on context, > > like $context->get_env_var($name) you'd call functions like > > get_env_var_in_context($context, $name); > > Objects with an expected role being provided sounds more reasonable > to me. This would also allow to hide implementation details (on > both sides). Tumbler, as an algorithm, is simple and has no coupling to Context. A user shouldn't have to construct an object class just to use it. I've opted to go with making Data::Tumbler a class. > > Returning to your suggestion of shipping Tumbler and Context a build-time > > tools > > in another module. Yes, that's worth doing. > > > > Note that Tumbler and Context are not directly related to the test > > generation use-case. So I think it would be a good idea to create another > > module which is aimed directly at supporting test generation and which > > uses Tumbler and Context. That module would contain get_input_tests(), > > write_test_file(), plus a plugin mechanism (eg for > > dbd_dbm_settings_provider). > > > > I suggest you start by creating a prototype of that module in > > sandbox/tim/lib and use it in sandbox/jens/tumbler.pl. Once you've > > something working I'll hack on it and adopt it in my tumbler.pl. > > > > Sound ok? > > I would start in the real life (but not doing releases) and see whether it > works as expected or not. I did a minor shot for MooX::Cmd related tests and > I think it can work in a limited environment (MX::Cmd, LMU are such) for > clinical trials ;) Cool. Go for it. Tim.