[EMAIL PROTECTED] (Justin Mason) writes:

>   - (public) message rewriting functionality
> 
>         rewrite_mail
> 
>     move code into another class; leave this public API on the ::Scan
>     object which calls into that class.
>     Proposed class name: Mail::SpamAssassin::Scan::Rewriter?

Rewriting should not be part of the Scan object.  I'd propose that
rewriting be part of a Mail::SpamAssassin::Format class.
 
>   - (internally) methods that implement Eval tests
> 
>         [entire contents of EvalTests.pm which
>         do this horrible hack of putting themselves into
>         the PerMsgStatus namespace]
> 
>     move code into another namespace.  Eval tests use the
>     PerMsgStatus object as $self, and since they're just
>     functions, not objects themselves, that doesn't need to
>     change -- they'd still get the ::Scan object as their
>     first arg.
> 
>     Proposed namespace: Mail::SpamAssassin::Test::Eval?

Just Mail::SpamAssassin::Tests.pm ?
 
>   - (internally) methods that control how tests are run,
>     their ordering etc.
> 
>         [parts of check]
>         [parts of do_head_tests / etc. ]
> 
>     Definitely move.
>     Proposed class: Mail::SpamAssassin::TestRunner?
>     RunTests? Runner? Scanner?

Shouldn't this just be part of "Scan"?
 
>   - (internally) methods that implement the DNS event-driven algorithm
> 
>         [entire contents of Dns.pm which do this horrible hack of putting
>         themselves into the PerMsgStatus namespace]
> 
>     into Mail::SpamAssassin::TestRunner as above?

I'd say this belongs in the EvalTests module, wherever it ends up.
 
>   - (internally) methods that perform auto-learning
> 
>         learn
> 
>     Proposed class: Mail::SpamAssassin::AutoLearn?   (I don't think
>     mushing into PerMsgLearner, Bayes, or Mail::SpamAssassin makes
>     sense, so a new class would be better.)

I think there's too much breaking up of stuff here.  Bayes would be
fine.
 
Do we really need to do this now?  This is not going to significantly
help performance, accuracy, or memory usage, is it?

What's the effect on stability?

How does this affect our release cycle?

Daniel

-- 
Daniel Quinlan                     ApacheCon! 13-17 November (3 SpamAssassin
http://www.pathname.com/~quinlan/  http://www.apachecon.com/  sessions & more)

Reply via email to