Robert Klemme
12/4/2006 1:09:00 PM
On 04.12.2006 13:06, Peter Szinek wrote:
>> Where do you need that for?
>
> I am setting up a complicated object (similar to a tree) with this code:
>
> crap = define_my_object do
> foo do
> bar
> baz do
> fluff :something => :hairy
> ork :something => :other
> end
> end
> end
>
> now, I would like to call a few methods on 'crap' which will alter the
> state of the object and eventually call a function which spits out crap as:
>
> crap = define_my_object do
> foo do
> bar :some => :new_param_here
> baz do
> fluff :now => :here, :are => :some, :other => things
> ork :and => :even, :more => nil
> end
> end
> end
So you are modifying the state of an object and want to emit code that
will recreate this state?
> I have been thinking about some kind of serialization which would be
> certainly possible just by knowing crap - but since everything remains
> the same except a few parameters, it seemed easier to me to
> sub! (':something => :hairy') {':now => :here, :are => :some, :other =>
> things'} etc. - but for this I need the string of the original block of
> course.
I would rather go serialization - if you use YAML the serialized state
is actually human readable (sort of). Marshal is binary but also faster
IIRC. I would *definitively* go serialization if you want to store
configuration state between script executions.
Kind regards
robert