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