> Am 11.09.2017 um 19:05 schrieb H. Hirzel <hannes.hir...@gmail.com>: > > Hello all > > Thank you for the helpful answers. > > What I updated was > > PPCMNode>>#name > "protocol: accessing" > name > "hackity hack, this should not be used except for tests..." > ^ self printString > > > This is the root object of the document model [1] generated by the > PetitMarkDown parser, > a common markdown parser by Jan Kurs [2]. > > Now 488 out of 479 tests pass. > I would call that superb quality 😀
Norbert > Regards > Hannes > > > > > > [1] > > PPCMNode is the base class of the document node hierarchy of a > document described by markdown > > ProtoObject #() > Object #() > PPCMNode #() > PPCMDelegateNode #(#children) > PPCMBlockQuote #(#code #infoString) > PPCMContainer #() > PPCMDocument #() > PPCMEmphasize #() > PPCMFencedCode #(#infoString) > PPCMHeader #(#level #title) > PPCMHtmlBlock #() > PPCMIndentedCode #() > PPCMLine #() > PPCMList #(#type #start) > PPCMListItem #() > PPCMParagraph #() > PPCMStrong #() > PPCMHardBreak #() > PPCMHrule #(#rule) > PPCMHtml #(#text) > PPCMInlinedCode #(#code) > PPCMLink #(#label #destination #title) > PPCMLinkRef #(#label) > PPCMLinkRefDef #(#label #destination #title) > PPCMLinkRefDefPlaceholder #() > PPCMPlainLine #(#text) > PPCMPlainText #(#text) > PPCMSoftBreak #() > PPCMText #(#text) > > > > > [2] > Name: PetitMarkdown-JanKurs.7 > Author: JanKurs > Time: 24 August 2016, 12:25:40.146088 pm > UUID: a2256c36-fc35-48ad-936d-9fd7567488e1 > > http://smalltalkhub.com/mc/JanKurs/PetitParser/main > > >> On 8/26/17, PBKResearch <pe...@pbkresearch.co.uk> wrote: >> Hannes >> >> >> >> You are certainly not required to eliminate #name altogether; all you have >> to do is to ensure that any object that receives the message #name knows how >> to answer its own name in an appropriate way. To rephrase Ben’s second para >> in a more long-winded way: >> >> >> >> a. Run the code that generates the deprecation warning. >> b. In the warning pop-up, click on ‘Debug’. >> c. Examine the debug stack in the top pane. It is probable that the first >> two lines will read: >> >> HannesClass(Object) deprecated:on:in >> >> HannesClass(Object) name >> >> where HannesClass is the name of some class in your domain >> model. >> >> d. You now know that some code you have written is sending the message >> #name >> to an instance of HannesClass, but the class does not have such a method. >> The solution is to decide how an instance of that class should answer its >> name, and implement that as a method on the instance side of that class. If >> nothing else is obvious, the usual default is ^self printString. >> e. If the top line of the debug stack does not refer to a class in your >> model, work your way down the stack until you find a class that is yours. >> >> >> >> Hope this helps >> >> >> >> Peter Kenny >> >> >> >> >> >> >> >> From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf Of >> Ben Coman >> Sent: 26 August 2017 13:08 >> To: Any question about pharo is welcome <pharo-users@lists.pharo.org> >> Subject: Re: [Pharo-users] Object>>#name deprecated in Pharo 6 -- what do I >> need to do? >> >> >> >> Just checking my presumption... is PPCMNode>>#gtTreeViewIn: >> >> you own application method? So where it sends #name, instead send >> #printString (or #asString). >> >> >> >> Alternatively, #name is being sent to some domain object that doesn't >> implement #name, so it falls back to the super one from Object. So >> implement YourDomainObject>>#name: so the one from Object is not executed. >> >> >> >> cheers -ben >> >> >> >> >> >> On Sat, Aug 26, 2017 at 4:38 PM, H. Hirzel <hannes.hir...@gmail.com >> <mailto:hannes.hir...@gmail.com> > wrote: >> >> OK, so #name should not be used at all [1] >> >> The error message I get is >> >> PPCommonMarkSpecTest class>>DoIt (blockVisitor is Undeclared) >> The method Object>>#name called from PPCMNode>>#gtTreeViewIn: has been >> deprecated. >> Implement your own domain representation of an object, or use >> #asString or #printString instead. >> >> >> I wonder how I can fix this without going to much into details. >> >> --Hannes >> >> >> ------------------------------------------------------------------------------------------------------------------------ >> [1] Pharo 6.1 source code: >> >> Object>>name >> "Answer a name for the receiver. This is used generically in the >> title of certain inspectors, such as the referred-to inspector, and >> specificially by various subsystems. By default, we let the object >> just print itself out.. " >> >> self >> deprecated: 'Implement your own domain representation of an >> object, >> or use #asString or #printString instead.' >> on: '27 May 2016' >> in: #Pharo6. >> ^ self printString >> >> >> On 8/25/17, Ben Coman <b...@openinworld.com <mailto:b...@openinworld.com> > >> wrote: >>> I don't have an Image to check, but I believe Object>>name >>> just does "^self printString", >>> so by default, in your application send #printString instead of #name. >>> >>> cheers -ben >>> >>> P.S. Perhaps this would be a good candidate for automated rewrite? >>> >>> >>> On Thu, Aug 24, 2017 at 8:49 PM, H. Hirzel <hannes.hir...@gmail.com >>> <mailto:hannes.hir...@gmail.com> > wrote: >>> >>>> Hello >>>> >>>> In the last days there was a discussion that >>>> >>>> Object>>#name >>>> >>>> >>>> should no longer be used. I did not follow the discussion in detail. >>>> What was decided how #name should be replaced? >>>> >>>> What do I need to do if I get a deprecation warning [1]? >>>> >>>> >>>> Thanks for the answer in advance >>>> >>>> Hannes >>>> >>>> >>>> >>>> >>>> [1] >>>> The method Object>>#name called from PPCMNode>>#gtTreeViewIn: has been >>>> deprecated. >>>> Implement your own domain representation of an object, or use >>>> #asString or #printString instead. >>>> >>>> Select Proceed to continue, or close this window to cancel the >>>> operation. >>>> >>>> >>> >> >> >> >>