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