> 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.
>>>> 
>>>> 
>>> 
>> 
>> 
>> 
>> 

Reply via email to