From: Joel VanderWerf Date: 2008-10-05T00:52:10+09:00 Subject: Re: handling tcl files in ruby salamond wrote: > Hi, all. > > Here's the problem occurred to me. > > I'm having several tcl files like this: > > data { > name {jarod} > id {1131321} > } > > data { > name {hhhh} > id {2929292} > } > > I defined a couple of proc like proc data, to auto generate arrays for me. > (arrays in tcl is like hash in ruby) > I just source file_name in my tcl_project, so that those arrays are > generated automatcially. > > because of this, I might have something like : > data { > name {jarod} > id {123455} > } > source a.tcl ;# a.tcl is another data file > > > Now I have to let ruby understand all these data files. > > Options that I'm having: > 1 translate all data files to xml, let ruby parse xml files > I've already tried the first one, but the result isn't so good, > new xml files are hard to understand and maintain. > 2 write my own ruby parser, > I've tried google, there seems to be a couple of ruby parser on > rubyforge. not look into it till now. > 3 call tcl in ruby to parse all those files. > I've found that there's no tcl_array_to_ruby_hash function > available in ruby/tk package. > > I think the best way is to keep the current format, but I'm not sure > if it is the right thing to do. > so does any body have experiences on this kind of staff or any > suggestions or ideas? Suggestion: look for a json (or yaml) emitter in tcl, or write one (it should be easy--a limited ruby json emitter is about 50 LOC). Dump your tcl structures to json, and that can be loaded in ruby using any of the ruby json libs. -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407