This is cool. we should add it to pharo.
http://code.google.com/p/pharo/issues/detail?id=1787 I don't know if tag it for 1.0, even thought only for having it and that new code created on 1.0 use the new is: message instead of a isXXX message. For now is only for 1.1 Cheers -- Miguel Cobá http://miguel.leugim.com.mx Levente Uzonyi wrote: > On Mon, 11 Jan 2010, Andreas Raab wrote: > >> Levente Uzonyi wrote: >>> On Mon, 11 Jan 2010, Andreas Raab wrote: >>>> Neither. For one thing, this method already says >>>> isScriptEditorMORPH so it obviously implies isMorph == true. (this >>>> would be different if it were isScriptEditor because there might be >>>> non-morph script editors). >>> >>> In this case all is*Morph methods should be moved to Object from Morph. >> >> Let's not split hairs here. Obviously such tests should be declared >> on the smallest reasonable scope. I'll remind you that I promoted >> that method only because it was actually sent to non-morphs. But at >> that point it's just silly to write, e.g., (obj isMorph and:[obj >> isBarMorph and:[obj isFooBarMorph]]) instead of obj isFooBarMorph. >> >>>> And it clearly can't be moved to the Etoys package - the whole >>>> purpose of the method is to make it possibly to unload Etoys and >>>> get isScriptEditorMorph == false for all other objects. This would >>>> blow up straight into your face if you'd move it to Etoys. Same >>>> goes for MorphExtension>>actorState, MorphExtension>>player etc. >>>> They all need to stay in the original packages since after >>>> unloading Etoys these messages will still be sent; they will just >>>> never return true / non-nil respectively. >>> >>> Of course moving it to EToys would require refactoring of the code. >> >> Knock yourself out. I think there's far bigger fish to fry with >> regards to unloading code but if that's what you'd like to work on be >> my guest. > > I'm not about to work on that, my list is already too long and my > knowledge about Morphic and EToys is not enough to do that properly. > But it would be good if > - we could unload packages with all related code > - Object protocol would be smaller Object >> is: aSymbol "A means for cleanly replacing all isXXX like methods. Please use judiciously! Suggested by Igor Stasenko at http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-June/136793.html" ^false ScriptEditorMorph >> is: aSymbol ^ aSymbol = #ScriptEditorMorph or: [ super is: aSymbol ] In this way you easily get rid of all #isXXX methods (at least, all that just answer the true or false constants). Much more interesting: when you unload EToys there is no knowledge about ScriptEditorMorph in unrelated classes (such as Morph or Object). Cheers, Juan Vuletich > > > Levente >> >> Cheers, >> - Andreas >> >> _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
for 1.1
only critical fixes should go in 1.0 and 1.0 should get out of the door :) >> > > The real solution here is to send 'is: #ScriptEditorMorph' and implement > > Object >> is: aSymbol > "A means for cleanly replacing all isXXX like methods. > Please use judiciously! > Suggested by Igor Stasenko at > http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-June/136793.html" > > ^false > > ScriptEditorMorph >> is: aSymbol > ^ aSymbol = #ScriptEditorMorph or: [ super is: aSymbol ] > > In this way you easily get rid of all #isXXX methods (at least, all that just answer the true or false constants). Much more interesting: when you unload EToys there is no knowledge about ScriptEditorMorph in unrelated classes (such as Morph or Object). we do not have etoy related is: methods.... or we can remove it just straight Now I somehow like the idea. Stef _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
El mar, 12-01-2010 a las 21:18 +0100, Stéphane Ducasse escribió:
> for 1.1 > > only critical fixes should go in 1.0 and 1.0 should get out of the door :) > >> Ok > > > > The real solution here is to send 'is: #ScriptEditorMorph' and implement > > > > Object >> is: aSymbol > > "A means for cleanly replacing all isXXX like methods. > > Please use judiciously! > > Suggested by Igor Stasenko at > > http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-June/136793.html" > > > > ^false > > > > ScriptEditorMorph >> is: aSymbol > > ^ aSymbol = #ScriptEditorMorph or: [ super is: aSymbol ] > > > > In this way you easily get rid of all #isXXX methods (at least, all that just answer the true or false constants). Much more interesting: when you unload EToys there is no knowledge about ScriptEditorMorph in unrelated classes (such as Morph or Object). > > > we do not have etoy related is: methods.... > or we can remove it just straight > Now I somehow like the idea. Yes, is only to have a neutral way to test for equality with some given class, be this etoys, seaside or whatever someone want to test an object against. In fact the method does nothing by itself nor changes the image in a given way. It is required that all the code that has methods isXXX is changed to use the new way to test class membership. But 1.1 is ok with me. Cheers > > Stef > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project -- Miguel Cobá http://miguel.leugim.com.mx _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |