xiaohu: As I said, I have not tried JRuby or any of the other Ruby-Java bridges with the IB-Java library, so I do not know what the performance implications would be, or even whether it would work at all. Maybe someone who has tried it can tell us how it went.
By writing the API in native Ruby code rather than simply bridging to the Java library, one can (hopefully) achieve an implementation that feels like Ruby code and uses Ruby's idiomatic programming conventions, rather than simply acting as a wrapper around the Java code. While such a wrapper may work, it would still require extra work to coerce it into Rubylike forms - and if you're not going to use Rubylike forms, why use Ruby at all? You may as well program in Java in that case.
Writing a library to implement the TWS socket API in another language is, apart from anything else, also an excellent way to learn the API.
Ideally, I'd use a C language library designed to use Ruby idioms and to be called from Ruby, which would probably be faster than either IB-Ruby or JRuby with the Java library. Such a library does not exist yet, but a native Ruby library will serve as an excellent prototype for such a C library. Once it is written, the critical sections can be profiled and then reimplemented in C optimized for the local platform.
Like I said earlier, the best tool for you to use is the one that lets you get your job done, and that will differ according to the particular person and job involved. IB-Ruby is not a solution for every problem, nor is it necessarily the best solution for any particular problem. It's just another tool that I'm making available to the world in the hope that someone will find it useful.