That's what we call a DTO

On Wed, Jun 14, 2017 at 3:01 PM, Christophe Demarey <christophe.demarey@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)

Christophe
----- Sven Van Caekenberghe <sven@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.self@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 <sven@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.self@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).
> > >
> >
> >
> >
>
>





--

������

Guille Polito


Research Engineer

French National Center for Scientific Research - http://www.cnrs.fr



Web: http://guillep.github.io

Phone: +33 06 52 70 66 13