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.

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