[Ruby/C++] Say hello to Rarity, C++ wrapper for the libruby!

Greetings everypony !

Today I’m presenting my latest work, Rarity, a C++ wrapper for the
libruby.
Its goal is to bring the neatness of the libruby with all the
crunchiness of C++.
You can use it to extend your Ruby application with C++, or the other
way round.

Enough chit-chat, let me show you how Rarity can make your life easier :
I present you a typical piece of Rarity code :

#include <rarity.hpp>
#include
#include
#include

using namespace std;

int main(void)
{
string str(“hello there !”);
Rarity::Instance rubyStr(Rarity::RValue(str));
// Rarity::RValue converts a C type to a VALUE

if (rubyStr.extends(“String”)) // This is true, of course
{
vector matched;

rubyStr = rubyStr.Call("capitalize");
matched = rubyStr.Call("match", 1, Rarity::RValue("(.)\l"));
cout << matched[0] << endl; // displays 'll'

}
return (0);
}

As the above code shows you, using Rartiy::Instance, you can interact
with Ruby instances in the most easy way : you can directly apply
methods on them like any other VALUE, working with its Class, or casting
it to a C-type. Rarity will take care of the conversion.

The library comes with a Doxygen documentation, and its Wiki on Google
Code will provide you with 3 tutorials explaining pretty much everything
there is to know about Rarity.

I hope you’ll like it !
Right now I’m looking forward for some feedback, and maybe some advice
to make Rarity even better, and even easier !

Rarity’s web page : Google Code Archive - Long-term storage for Google Code Project Hosting.

Thanks for reading !