[REBOL] Re: Creation of object with unknown structure
From: knizhnik:garret:ru at: 6-Dec-2003 19:06
Hello Christian,
Thank you very much! "to-set-word" - is what I have missed.
And "prepare" function is exactly what I need.
Saturday, December 6, 2003, 6:37:09 PM, you wrote:
>> I am developer of object oriented database for dynamic languages
>> (www.garret.ru/~knizhnik/dybase.html)
>> Currently it supports PHP, Python and Ruby. Now I am going to develop
>> Rebol API for DyBASE.
CL> that's very, very cool!
>> I read Rebol manual but some questions are still not clear for me.
>> Can some Rebol guru suggest me the best way of dynamic instantiation
>> of object (so that structure of the object is not known at compile
>> time)?
CL> fortunately that's rather easy.
CL> b: copy []
CL> append b to-set-word "foo"
CL> append b "bar"
CL> obj: make object! b
CL> probe obj
CL> make object! [
CL> foo: "bar"
CL> ]
>> For example I have block containing field names and values:
>> ["x" 1 "y" 2 "z" 3]
>> I want to construct object with these fields, so that result will be
>> the same as after creating object using "make":
>> obj: make object! [x: 1 y: 2 z: 3]
CL> you'll probably prefer to construct objects like shown above, but ...
CL> prepare: func [ x ] [
CL> r: make type? x length? x
CL> foreach [ k v ] x [
CL> repend r [ to-set-word k v ]
CL> ]
CL> r
CL> ]
CL> make object! prepare ["x" 1 "y" 2 "z" 3]
CL> best regards,
CL> -- chris
--
Best regards,
Konstantin mailto:[knizhnik--garret--ru]