On 5/12/08, Axel Etzold <AEtzold / gmx.de> wrote: > > -------- Original-Nachricht -------- > > Datum: Tue, 13 May 2008 02:04:08 +0900 > > Von: "Jason Roelofs" <jameskilton / gmail.com> > > An: ruby-talk / ruby-lang.org > > Betreff: [ANN] rb++ / rbgccxml 0.1.1 bugfix release > > > > == CHANGELOG > > > > === 0.1.1 > > > > * rb++: Added rice as a gem dependency > > * rb++: explicitly requiring fileutils now > > * all: Added ldflags / cxxflags options for passing in other custom > > command line arguments > > * gccxml: Error message about how to fix the file execution flags is > > now consistent across platforms. > > > > > > == What is rb++ / rbgccxml? > > > > For anyone who wants an alternative to SWIG for generating Ruby > > extensions from C++ header files, look no further. > > > > == Project > > > > Documentation: http://rbplusplus.rubyforge.org > > > > Project Page: http://rubyforge.org/projects/rbplusplus > > > > == Installation > > > > This single command will grab the whole stack needed for rb++ to work. > > > > gem install rbplusplus > > > > The stack includes three libraries: rb++, rbgccxml, and gccxml_gem and > > also installs rice > > > > == rb++ > > > > Rb++ makes it almost trivially easy to create Ruby extensions for any > > C or C++ library / code. In the simplest of cases, there is no need to > > ever touch C, everything is done in a very simple and clean Ruby API. > > > > As this is an 0.1 release, not all of C++ is supported. The current > > constructs that rb++ can wrap are: > > > > * functions > > * classes > > * class methods > > * static class methods > > > > Rb++ allows one to define Ruby Modules and put wrapped code in them as > > well. > > > > == rbgccxml > > > > RbGCCXML allows one to easily parse out and query C++ code. This > > library uses GCC-XML to parse out the C++ code into XML, and then > > Hpricot to parse and query that XML. > > > > == gccxml_gem > > > > GCC-XML (www.gccxml.org) is an application that takes takes the parse > > tree of G++ and constructs a very parsable and queryable XML file with > > all related information. > > > > The third part of the stack is this gem that includes a binary build > > of GCC-XML for your platform, to make it trivially easy to install. > > Platforms currently supported are: > > > > * Linux 32 & 64 bit > > * Mac OS X 10.5 (may have an issue with 10.4 or lower, need to test these) > > * Windows 32-bit via Cygwin > > > > == Requirements > > > > * rice (http://rice.rubyforge.org) - The C++ interface for Ruby > > * hpricot (http://code.whytheluckystiff.net/hpricot/) - Does the XML > > parsing > > * test/spec - For running the tests > > > > == Code > > > > All code is hosted at github > > > > rb++: http://github.com/jameskilton/rbplusplus/tree/master > > rbgccxml: http://github.com/jameskilton/rbgccxml/tree/master > > gccxml_gem: http://github.com/jameskilton/gccxml_gem/tree/master > > > > == Notes > > > > Released under the MIT licence. > > > > For those familiar with py++ / pygccxml, the similarities are in > > function only. Rb++ / rbgccxml were written from scratch to take > > advantage of the Ruby language to it's fullest. > > > > Bugs, patches, feature requests, et al should be posted to the > > project's tracker. > > > > Discussion can be here or the project's rubyforge forums. > > > Dear Jason, > > thanks for your work ! This is really, really nice. > I have a suggestion for the documentation. > Would it possible to include some explicit easy examples in the documentation, to demonstrate how to extend Ruby with a function, > a class , a module written in C++, somewhat like what Mark Volkmann > has done for the tradition C/Ruby extension here : > > > http://www.ociweb.com/mark/programming/Ruby_C_Extensions.pdf ? > > This might save people some time from digging into the test directory > and demonstrate how much easier life becomes through your gem. > > Thank you very much agaian for your nice work ! > > Best regards, > > Axel > > > > like eg., the ones > > -- > Psssst! Schon vom neuen GMX MultiMessenger gehöòt? > Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger > > Most definitely. Documentation will be as constantly changing as the code-base itself. I threw together a quick sample for both rb++ and rbgccxml, though you're rigth, it will work better right in the documentation. I'll get some pages up with detailed samples and examples. Jason