jacius / nice-ffi

Nice-FFI: Convenience layer atop Ruby-FFI
http://jacius.github.com/nice-ffi/
23 stars 9 forks source link

Add nested structure support #5

Open sparkchaser opened 9 years ago

sparkchaser commented 9 years ago

This patch enables the hash and array import/export functions to work with nested structures (not pointers). It also adds a spec file for structures that validates this functionality.

jacius commented 9 years ago

Hello, and sorry for the delayed response. I have been trying to decide what to do, and time slipped away. I'm still not sure what to do, but I owe you a response, at least.

First, let me say that this is a great feature, and it would fit very well in Nice-FFI. I very much appreciate the time and effort you put into it.

Unfortunately, Nice-FFI is no longer being developed or maintained. The last release was over 5 years ago, and I wasn't planning on doing any more development or new releases. I've moved on, and this project is not really relevant to my interests anymore.

So, if someone wants to take over as maintainer, I'm amenable to that. Otherwise, it is very unlikely that there will be any future releases of Nice-FFI. :(

sparkchaser commented 9 years ago

I had a feeling that was the case but since this was related to something that was explicitly on the "to-do" list, I thought I'd offer up my changes just in case.

What I'm ultimately working on is a way to take FFI::Struct objects and serialize them to a text-based format, and then reconstitute the original structure from it (for sending the structure through a web interface that only speaks something like XML or YAML). I based my work off of your NiceFFI::Struct class because your to/from hash/array functions made my job a lot easier. I'm considering submitting what I've built for inclusion in the core FFI library. Would you have any objections if I used portions of your code - with proper attributions of course - in my submission?

jacius commented 9 years ago

I like that idea. Please email me (john at croisant dot net) with the details of which portions of code you wish to use, and I'll okay it.