As I already told you and the board, I will just leave if such a solution get pushed into Pharo.

Hi,

I like this problem very much. I think we are not leveraging the objects we 
have in the image. Tests can help, but they are way too disconnected from the 
code and they are not really useful for detailed questions.

I am also happy that you are considering the use of pragmas for this purpose.

As you know, Stefan Reichhart and I worked on the examples engine since a 
couple of years and I think we now start to have a working solution.
I do not want 5 pragmas and dependencies between methods and examples. KISS.
Pharo tends to forget KISS far too often recently.
You know exactly what I do not want: conceptual (and code) bloat.
It think it is KISS. If you only want one feature, you use exactly one pragma 
<gtExample>. Nothing else. If you want more, as people do, you can get more.

But, I won’t go into a debate now. First, I would like to present what exists 
and then you can form an opinion if you want.

Just a note: there already exists in the image a first implementation of 
GTExample, and this proved very useful for testing the inspector and spotter. 
However, this was introduced without proper discussion, and as we do not want 
to impose anything we will remove the whole 1400 lines of code of the GTExample 
implementation from the GT-Inspector package as it did not belong there anyway, 
and we will make the new one available separately outside of Pharo. In this 
way, people can look at it if they want and we can have a discussion if desired.


Because this would be a significant departure from tests, we first wanted to 
get a more thorough documentation of the current state before opening the 
discussion to the community to see how this can fit in Pharo or at least in the 
ecosystem. I think we will have this ready in a draft form in a couple of days, 
and it would be great to have a critical discussion about it at ESUG.
My plate is really full. I have a super long list of things that I want to 
discuss at ESUG.
Ok.

Doru



Stef
Cheers,
Doru


On Aug 18, 2016, at 1:32 PM, stepharo <steph...@free.fr> wrote:

Tx serge

- I think that we should agree on the pragma or way to express it. May be we 
can do the same as in Python and use a comment instead of a pragma. I prefer a 
pragma because we can query them easily.

So any idea instead of
    <exp: value:>

    <expression: return: >

withExtension: aString

    "Returns a new file reference with a different file extension"

    <exp: '/tmp/file.txt' asFileReference withExtension: 'log'

    value: '/tmp/file.log' asFileReference >

    ^ self withPath: (self path withExtension: aString)


- then incrementally we can start taking on system for example FS and use it.

Stef


Le 18/8/16 à 11:51, Serge Stinckwich a écrit :
On Thu, Aug 18, 2016 at 9:34 AM, stepharo <steph...@free.fr> wrote:
Hi guys

I'm fed up to get methods without comments and without little examples. In
+1 !
We can setup a small group of people interested to build examples at ESUG.

FileSystem, I wrote most of the comments and I tried to add an obvious
example:

basenameWithIndicator
         "Returns the basename with the indicator appended, i.e.
/foo/gloops.taz basenameWithIndicator is 'gloops.taz', whereras /foo
basenameWithIndicator is 'foo/'"

     ^ self basename , self indicator


Now let us look at:

withExtension: aString
     ^ self withPath: (self path withExtension: aString)


Nice comment :(

I would like to support PythonDoctest (yes we are not the only one to have
ideas let us face is dear friends)
+1

https://en.wikipedia.org/wiki/Doctest

def multiply(a, b):
     """
     >>> multiply(4, 3)
     12
     >>> multiply('a', 3)
     'aaa'
     """
     return a * b

Because we can make sure that the comments are accurate.


withExtension: aString

     "Returns a new file reference with a different file extension"

     <exp: '/tmp/file.txt' asFileReference withExtension: 'log'

     value: '/tmp/file.log' asFileReference >

     ^ self withPath: (self path withExtension: aString)


It will help us to have a distinction between printOn: and displayString

Typically

     '/tmp/file.txt' asFileReference withExtension: 'log'

     printString is bad

     since it returns File @ '/tmp/file.log' which is not an reexecutable
expression



So let me know what you think.
     - tell me that we have already test unit (yes the ones I wrote too)
         => they do not have the same purpose

For me this is getting to be important.
Maybe a subset of Pharo could be defined as core with a kind of API
freeze, so we can spend some time
documenting the corresponding methods and classes.

--
www.tudorgirba.com
www.feenk.com

"Every thing has its own flow."








--
www.tudorgirba.com
www.feenk.com

"Next time you see your life passing by, say 'hi' and get to know her."








Reply via email to