richard.j.dale / gmail.com wrote:
> URIS
> 
>     http://rubyforge.org/projects/korundum/
>     http://developer.kde.org/language-bindings/ruby/index.html
> 
> NAME
> 
>    QtRuby 1.4.7
> 
> SYNOPSIS
> 
>    Ruby bindings for the Qt4 GUI apis.  Many fixes and
>    improvements. QtDBus now works.
> 
> DESCRIPTION
> 
>    Highlights from the QtRuby ChangeLog since release 1.4.7:
> 
> * Support for Qt 4.2 final
> 
> * The Qt4 version of QtRuby can be installed at the same time as
>    the Qt3 version.
>    * Use:
>        - require 'Qt3'
>        - require 'Qt4'
>        - require 'Qt'
>      The last option will default to Qt4 QtRuby.
>    * The command line api introspection tool can be used to query
>       both Qt3 and Qt4 apis:
>        - rbqt3api
>        - rbqt4api
>        - rbqtapi
>      Again the last option will default to the Qt4 api for QtRuby
>    * The 'rbuic' tool has been renamed 'rbuic4' to avoid a clash with
>       the Qt3 one.
>    * The Qt3 and Qt4 versions of the Smoke library have different
>       versions and can be installed in the same directory
> 
> * Added the rbrcc Ruby resource compiler tool
> 
> * Optional support for the QtDbus classes, and Qt QDBus examples
>    ported to ruby
> 
> * Optional support for the Qwt plotting library
> 
> * Blocks can be used as targets for connect calls as well as ordinary
> slots:
> 
> 	* Added a new variant of connect, which takes a SIGNAL as an
>           argument, along with a block. For example:
> 
>           quit.connect(SIGNAL(:clicked)) { puts 'quit pressed' }
> 
> 	  The block is called in the context of where the connect call was
>           made, and 'self' needn't be a Qt::Object. It is similar to
> the
>           signal_connect() method in ruby-gnome. This was suggested by
>           rickdangerous on the #qtruby irc channel.
> 
> 	* Here is an example of the class method connect() call with a block
>           as a target:
> 
>           app = Qt::Application.new(ARGV)
>           quit = Qt::PushButton.new('Quit')
>           Qt::Object.connect(quit, SIGNAL('clicked()'), app) do
>               puts 'quit clicked'
>           end
> 
> 	  The block is executed in the context of the target instance,
>           'app' in this case.
> 
> 	* And the instance method form:
> 
>           class MyButton < Qt::Button
>                def initialize(text)
>                     super(text)
>                     connect(self, SIGNAL(:clicked)) do
>                          puts 'button clicked'
>                     end
>                end
>                ...
> 
> 	  The block is executed in the context of self - the instance making
>           the connect() call.
> 
> CONFIG
> 
>    See the qtruby/INSTALL file for details of configuration, building
>    and installation.
> 
> BUILDING ON WINDOWS
> 
>    * The smoke library can be built on windows by manually editing
>       qtguess.pl.in and generate.pl.in (automake doesn't work with
>       qtruby on Windows). Run 'perl qtguess.pl'  to for the configure
>       tests. Then run 'perl generate.pl' to generate the Smoke sources,
>       and build with qmake. Use extconf.rb and qmake to build the
>       qtruby extension and rbuic tool.
> 
> ENVIRONMENTS
> 
>    Linux, BSD*, Unix etc
>    Mac OS X, Windows
> 
> AUTHORS
> 
>   Richard Dale with Caleb Tennis, Alexander Kellett and others.
>   Special  thanks to kelko and rickdangerous for suggesting how
>   to implment 'blocks as slots' for this release.
> 
> 
> 
Awesome!! Questions:

1. Does all this magic work on Windows?
2. Is it packaged as a gem?
3. Is Caleb going to update his excellent tutorial on QT Ruby?