Sinwar is skeleton for your application, if Ruby backend, and GWT client is what you are looking for. Applications can by easily deployed to Google AppEngine. JRuby based backend give you tons of freedom to express your business logic, while Java/GWT gives you cross-browser, future-proof foundation for building dynamic, asynchronous client.
JRuby rack application is made by following this article: http://blog.bigcurl.de/2009/04/running-sinatra-apps-on-google.html
GWT application is based on following libraries:
Presenter based architecture is inspired by articles from Hive Development http://blog.hivedevelopment.co.uk/2009/08/google-web-toolkit-gwt-mvp-example.html
..which in turn were triggered by Google I/O 2009 talks about non-trivial GWT applications. You can watch the video here: http://code.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html
Your sinatra application is located in war/WEB-INF/app.rb. Nobody's forcing you to use Sinatra, you can use merb if you want to. All Ruby dependencies must be native code free in order to run on JRuby. Gem repository available to server application is in war/WEB-INF/gems.
On GWT side, you have to rename your.project package to whatever is your domain, and adjust GWT's module definition files (*.gwt.xml) accordingly.