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.

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.

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






Reply via email to