Estive estudando um pouquinho o jruby na ultima semana, e tem algumas coisas que gostaria de compartilhar.
Principalmente para conhecimento geral.
E claro dicas dos mais experientes no assunto serão bem vindas.
Ver o JRuby rodar Rails simplesmente não me traz tantas emoções. Mas fiz alguns trechos de código, com coisas que realmente me deixaram muito feliz.
OBS: Os trechos abaixo foram de um programador java tentando entender ruby, portanto contenha-se. :lol:
Trabalhando com swing no jruby
require 'java'
#java.awt.event.ActionListener
class Action
def actionPerformed(e)
puts e.getActionCommand
end
end
frame = javax.swing.JFrame.new('new Frame')
frame.setDefaultCloseOperation(javax.swing.JFrame::EXIT_ON_CLOSE)
button = javax.swing.JButton.new('Button 1')
button.addActionListener(Action.new)
frame.getContentPane.add(button)
frame.pack
frame.setVisible(true)
:arrow: O mais interessante disso é a implementacao do actionListener dentro do ruby. (sim funciona)
require 'java'
list = java.util.ArrayList.new(['6aaa', '3ddd','1fff', '4ccc','5bbb', '2eee'])
puts '----------'
#default comparator de java.lang.String
java.util.Collections.sort(list)
list.each {|o| puts o}
puts '----------'
class ReverseComparator
def compare(o1, o2)
(o1.nil? || o2.nil?) ? 0 : o1.reverse <=> o2.reverse
end
end
#utilizando o comparador local, que usa metodos do ruby para trabalhar
java.util.Collections.sort(list, ReverseComparator.new)
list.each {|o| puts o}
puts '----------'
:arrow: Portando arrays e string de java para ruby e ruby para java transparentemente.
:arrow: Notem o uso de each para um ArrayList e a implementação do comparator meio ruby meio java.
Fora isso, o uso do IRB tendo todo o porte mencionado acima, legitimas coisas que não tem preço. 
Fiquem a vontade para comentários.
Até mais.