But this *is* a discussion about the tools, not the implementation. ZnUrl is an example of class in the image that has a print representation like your object.
So it looks like this (doing Print It in a Playground) (for me): 'https://pharo.org' asUrl. "https://pharo.org/" 'https://pharo.org' asUrl printString. "'https://pharo.org/'" But you seem to use a modification where the $" are not used ? I guess that the reason those $" are there is to make it a legal expression. Anyway, I do not see an underlying problem, only a possible discussion about what you would expect from the tools. Strings are poor representations, make them auto evaluate would make for much uglier text. I would not particularly like the following: 'https://pharo.org' asUrl. "ZnUrl fromString: 'https://pharo.org'" Or even: 'https://pharo.org' asUrl. "(ZnUrl fromString: 'https://pharo.org')" Though it is an option. (This goes for all similar objects, like date, time, ..). Then it does become a discussion about what a print string should be. > On 19 Feb 2017, at 11:42, stepharong <[email protected]> wrote: > > On Sun, 19 Feb 2017 11:40:04 +0100, Sven Van Caekenberghe <[email protected]> > wrote: > >> Ah, you're right: there is a difference between printing a textual >> representation on a stream / window and doing the same with the actual >> (print)string. I was not yet fully awake I guess. > > So > 'comics' > >>> comics whatever it means > but > (#AAA asClass new name: 'comics') > >>> 'comics' > > I'm sorry but I do not get it at all. > Especially since we always wrote that printIt is sending printString. > I find that totally broken and I do not understand why this is good. > > Stef > > > > >> >>> On 19 Feb 2017, at 10:59, Tudor Girba <[email protected]> wrote: >>> >>> Hi, >>> >>> Hmm, I think I do not see it :). >>> >>> Let’s take it slowly. From what I see, the behavior is the same since at >>> least Pharo 3. >>> >>> Here is a script that seems to reproduce your situation: >>> >>> Object subclass: #AAA >>> instanceVariableNames: 'name' >>> classVariableNames: '' >>> package: 'AAA'. >>> #AAA asClass compile: 'printOn: aStream >>> aStream << name'. >>> #AAA asClass compile: 'name: aString >>> name := aString'. >>> #AAA asClass new name: 'comics' >>> >>> In Pharo 6, we have in a Playground: >>> >>> <Screen Shot 2017-02-19 at 10.48.55 AM.png> >>> >>> In Pharo 3, we have this in a Workspace: >>> >>> <Screen Shot 2017-02-19 at 10.49.26 AM.png> >>> >>> Calling Print It on an object produces a string out of the contents of the >>> stream, and displaying it shows the contents of the stream (so, no quotes). >>> Calling Print It on a string produces a string of the string, and >>> displaying it shows the quotes of the first string. >>> >>> You can see this in the String tab of the inspector: >>> >>> <p1.png> >>> >>> >>> <p2.png> >>> >>> Does this make sense? >>> >>> I think this is not inconsistent, but maybe there is a better way. In any >>> case, the behavior seems to exist since a long time. >>> >>> Cheers, >>> Doru >>> >>> >>>> On Feb 19, 2017, at 9:06 AM, stepharong <[email protected]> wrote: >>>> >>>> Hi doru >>>> >>>> may be I do not see the obvious. >>>> I defined a class >>>> >>>> Object subclass: #MFElement >>>> instanceVariableNames: 'name parent' >>>> classVariableNames: '' >>>> package: 'MyFS2' >>>> >>>> printOn: aStream >>>> parent isNil ifFalse: [ parent printOn: aStream ]. >>>> aStream << name >>>> >>>> name: aString >>>> name := aString >>>> >>>> >>>> MFDirectory new name: 'comics'. >>>> >>>> >>>> And when I do >>>> >>>> >>>> (MFDirectory new name: 'comics') >>>> comics/ >>>> >>>> >>>> (MFDirectory new name: 'comics') printString >>>>>>> 'comics/' >>>> >>>> >>>> Hi Stef, >>>> >>>> I think I do not understand the issue. >>>> >>>> Here is the screenshot of a Playground. >>>> >>>> ‘comics’ -> print-it -> ‘comics' >>>> >>>> <Mail Attachment.png> >>>> >>>> What am I missing? >>>> >>>> Cheers, >>>> Doru >>>> >>>> >>>>> On Feb 18, 2017, at 6:26 PM, stepharong <[email protected]> wrote: >>>>> >>>>> >>>>> Hi guys >>>>> >>>>> I'm working on an introduction chapter for my future book and I do not >>>>> like the behavior I see in latest pharo 60. >>>>> >>>>> And I do not understand the behavior of print-it >>>>> >>>>> (MFDirectory new name: 'comics') >>>>> comics/ >>>>> >>>>> >>>>> (MFDirectory new name: 'comics') printString >>>>>>>> 'comics/' >>>>> >>>>> >>>>> Why print it does not produce ''? >>>>> >>>>> >>>>> Stef >>>>> >>>>> >>>>> printIt >>>>> "Treat the current text selection as an expression; evaluate it. Insert >>>>> the >>>>> description of the result of evaluation after the selection and then >>>>> make >>>>> this description the new text selection." >>>>> >>>>> | printString | >>>>> self >>>>> evaluateSelectionAndDo: [ :result | >>>>> printString := [ result printString ] >>>>> on: Error >>>>> do: [ '<error in printString: try ''Inspect >>>>> it'' to debug>' ]. >>>>> self afterSelectionInsertAndSelect: printString ] >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Using Opera's mail client: http://www.opera.com/mail/ >>>>> >>>> >>>> -- >>>> www.tudorgirba.com >>>> www.feenk.com >>>> >>>> "It's not how it is, it is how we see it." >>>> >>>> >>>> >>>> >>>> -- >>>> Using Opera's mail client: http://www.opera.com/mail/ >>>> <MFElement.st> >>> >>> -- >>> www.tudorgirba.com >>> www.feenk.com >>> >>> "Problem solving should be focused on describing >>> the problem in a way that makes the solution obvious." >>> >>> >>> >>> >>> >> > > > -- > Using Opera's mail client: http://www.opera.com/mail/
