From: Joel VanderWerf Date: 2003-12-13T10:11:15+09:00 Subject: Re: create/read/write structs in ruby Michael Hale wrote: > I am creating an extension in ruby for a library with a sizeable amount > of sizeable structs. I would like to be able to create c structs, set > their attributes, and read their attributes in ruby, for the purpose of > passing the struct I just setup to a native method that knows what to do > with it. > > I am envisioning something like this: > > require 'customtype.so' > t = CustomType.new > #writer > t.property1 = 'some value' > > #reader > t.property1 > > Under the covers this would read/write the values on my c struct. > The only way I can see to implement this would be to basically write a c > method for every attribute on the struct and then do some method missing > stuff on the ruby side. > > Is there an easier/better way to read and write data from a struct in > ruby than what I have outlined? Take a look at swig (www.swig.org). You can feed it your C/C++ source and it will generate the interface code you need to build a ruby extension. Some rather large C++ libraries have been wrapped in ruby this was (Fox --> FXRuby is a great example).