Estou brincando com o JRuby e tentando instanciar objetos Ruby dentro do Java, para chamar código Ruby de dentro do Java.
Problema básico: o JRuby retorna java.lang.reflect.Proxy para todos os objetos Ruby criados, daí fico impossibilitado de usar qualquer tipo de reflection.
O que eu queria era por reflection chamar um método (desconhecido / não especificado por uma interface) de um objeto Ruby. Parece que o JRuby me deixa na mão em relação a isso…
O proxy do Java poderia colaborar também, mas acho que não tem jeito não, ou seja, se vc tem um Proxy, vc não tem como fazer reflection no objeto que está dentro do Proxy…
E se você fizesse a reflection do lado Ruby? Você poderia chamar object.methods para receber a array de métodos públicos do objeto. Isso não seria suficiente?
eu não sei se essa dica pode te ajudar. Mas o Akita, evangelista do Ruby on Rails no Brasil, publicou há um tempo atrás um artigo que fala como usar ruby usando a script engine do java: