So the method declaration should be self afterDOCTYPEPublicKeywordState: currentCharacter. ?
But I have been doing the same for quite some time and I wasn't getting any complains. This is the first time and the only thing that changed is that I have two blocks in this case. As I said earlier if I move the method call outside the block it works with no complains :) I'll change the names of all my methods to camel case. Thanks for that From: [email protected] [mailto:[email protected]] On Behalf Of Esteban Lorenzano Sent: Saturday, March 23, 2013 2:52 PM To: A friendly place where any question about pharo is welcome Subject: Re: [Pharo-users] Method Calling Inside Nested Blocks On Mar 23, 2013, at 12:31 PM, "Mohammad Al Houssami (Alumni)" <[email protected]<mailto:[email protected]>> wrote: Hello everyone I was trying to save my method which has the below piece of code anythingElseBoolean = false ifFalse: [ doctypeString := reader next: 6 doctypeString asLowercase = 'public' ifTrue: [ AfterDOCTYPEPublicKeywordState value: currentCharacter ] I get a complain that the AfterDOCTYPEPublicKeywordState is unknown even though I have a method with this name. AfterDOCTYPEPublicKeywordState is a METHOD???? then, you are missing some points: 1) it does not conforms conventions (it should start with lowercase) 2) you need a self call so, it would be like this: self afterDOCTYPEPublicKeywordState value: currentCharacter. but that is also wrong from a design point of view (anti demeters law). So, you better create a (perhaps private) method who does the assignment. And then you have something like this: self afterDOCTYPEPublicKeywordState: currentCharacter. Esteban If I move the method call outside outside the ifTrue block to the ifFalse block it doesn't complain. Is the problem because of nested blocks ? If that's the case then what would be a good work around ? Thanks Mohammad
