that's what is called a DTO Le 14 juin 2017 15:27, "Sven Van Caekenberghe" <s...@stfx.eu> a écrit :
> > > 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). > >>>> > >>> > >>> > >>> > >> > >> > > > > > > >