In the past I have done a few hacks...one was to remove all methods from
the class and only implement #doesNotUnderstand: calling the deprecation
method saying the class was deprecated and now you should use xxxx.

In another case, I didn't want to remove methods from the class for some
other reason, so if I remember correct I hacked it but doing a Smalltalk
at: #MyClass put:  self createDeprecatedClass.

And #createDeprecatedClass would create a dummy class with no method but
the mentioned dnu...

But for sure we need a better way to deprecate classes and packages too!



On Fri, Jul 24, 2015 at 11:31 AM, Peter Uhnák <i.uh...@gmail.com> wrote:

> Hi,
>
> is there a mechanism for deprecating whole classes?
>
> For example there's class RTResizEable that has been replaced by
> RTResizable (without extra "e") class. But if I don't want to break
> people's code I would like to tell them that they should use something else.
>
> I could mark every method with "self deprecated:" but that's a bit
> tedious...
> And doing it with a script (rewritting all methods to add the statement)
> is dangerous, because it can be part of UI loop, so it will blow up the
> image with warnings.
>
> An idea might be to instead of opening Warning dialog with debug...
> to create a "Deprecations Browser" (which has only one instance so if you
> attempt to open it again while it is still opened nothing will happen).
> And in the Deprecations Browser would be list of triggered deprecations...
> maybe something like "Announcements tab" in Announcer inspector...
>
> That way even deprecations in UI loops will just add a hundred rows to a
> single window instead of opening hundred windows. (And there would be also
> opportunity for not showing duplicates.)
>
> Thanks,
> Peter
>



-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to