> On 14 Jun 2017, at 15:01, Christophe Demarey <christophe.dema...@inria.fr> 
> wrote:
> 
> +1
> It is exactly what i've done with Cargo. Define your own specific object for 
> serialization / deserialization. It is the simplest way to have a human 
> readable conf file (e.g. urls, pathes default serialization is not what you 
> expect)

Maybe Steph can have a look at your approach.

> Christophe
> ----- Sven Van Caekenberghe <s...@stfx.eu> a écrit :
>> STON cannot be used to write partial, manual output because it needs to see 
>> the full object graph (like FUEL does).
>> 
>> If I would want to use STON for prettier looking config files, I would make 
>> an object just for that external representation, converting it where 
>> necessary to better internal objects (like from String to FileReference).
>> 
>>> On 5 Jun 2017, at 08:58, Stephane Ducasse <stepharo.s...@gmail.com> wrote:
>>> 
>>> Sven I know what Ston is :) 
>>> 
>>> Now Pillar dev used Ston as input and it works. Then with some hooks they 
>>> let the user convert the strings
>>> into specific objects and this is ok. 
>>> Now I want to add export in Ston and for configurations I need to control 
>>> for the application and not as a ston object the value saved.
>>> For example a file reference should not be just a file reference in Ston 
>>> but 
>>> a string relative the the baseDirectory of the configuration. 
>>> 
>>> So I thought that I can build a hook and control the call to Ston (convert 
>>> the object before to the correct values) and export. 
>>> It should be working now doing this I found myself redoing the output of 
>>> Ston. 
>>> So I will do it. Then I thought that may be I could reuse this logic. 
>>> 
>>> Stef
>>> 
>>> 
>>> 
>>> On Sun, Jun 4, 2017 at 11:49 PM, Sven Van Caekenberghe <s...@stfx.eu> wrote:
>>> Stef,
>>> 
>>> STON is like FUEL, it can write any object to a stream and read it back. 
>>> Although you can customise how this is done, only one way of doing so is 
>>> supported (i.e. you cannot change the format for each application).
>>> 
>>> People have used STON for various applications now, including for 
>>> configuration stuff (because it is a textual format that is easy to read).
>>> 
>>> I would suggest you just try to see what your config looks like once you 
>>> have the objects in Pharo.
>>> 
>>>  STON toStringPretty: myConfig.
>>> 
>>> Then we can see how to tune the representation.
>>> 
>>> Sven
>>> 
>>>> On 4 Jun 2017, at 22:58, Stephane Ducasse <stepharo.s...@gmail.com> wrote:
>>>> 
>>>> Hi sven
>>>> 
>>>> I'm working on a new configuration frameworks similar to the one use 
>>>> pillar.conf.
>>>> 
>>>> So basically I have
>>>> 
>>>> ston := '{
>>>>           "newLine":#unix,
>>>>              "separateOutputFiles":true
>>>>              }'.
>>>> and I want to recreate it.
>>>> 
>>>> So I did
>>>> 
>>>> Object >> toConfigurationString
>>>> 
>>>>      ^ STON toString: self
>>>> 
>>>> SimpleConfiguration >> exportStream
>>>> 
>>>>      ^ String streamContents: [ :str |
>>>>              str << '{' .
>>>>              self propertiesKeysAndValuesDo: [ :key :value|
>>>>                      str << key toConfigurationString.
>>>>                      str << ':'.
>>>>                      str << value toConfigurationString.
>>>>                      str << ','.
>>>>                      str lf.
>>>>                      ].
>>>>              str << '}'.
>>>>              str contents
>>>>              ]
>>>> 
>>>> The idea is that for special configuration values people should be able to 
>>>> define
>>>> how to go from the object to configuration.
>>>> For example for some FileReference I want to have just the path up to the 
>>>> baseDirectory.
>>>> 
>>>> Now I wonder if I could not better reuse ston.
>>>> I saw the stonOn:
>>>> but I did not look further because I was wondering how the writer where 
>>>> passed.
>>>> 
>>>> Any feedback is welcome.
>>>> 
>>>> Stef (now bed time).
>>>> 
>>> 
>>> 
>>> 
>> 
>> 
> 
> 


Reply via email to