John Johnson wrote: # Using Tk with Ruby (or any other language) has always seemed a # little convoluted. Ruby's scoping for blocks makes this even more # so, since the blocks passed to command are scoped when the command # is set, not when it's running. This leads to: # [...] # Of course you have no idea what a p is, so you have to search back # through the source to find it. I've been toying with classes that # allow me to do the following: # [...] # As you can see, I have defined methods like onClick for Buttons, # onCheck and onUncheck for CheckButtons, etc. Not demonstrated here # are methods such as onEnter for FlatButton which allow you to do # something when the mouse pointer enters the button. (Which would have been nice to include for the sake of a complete working example.) # I think it's a whole heck of a lot more # intuitive. Notice the @checkBtn.onUncheck for instance. The block it # executes is defined where it is used. # # I plan to pursue this further, what do you folks think? I certainly want to encourage such explorations since Ruby/Tk is likely to remain something of a useful lowest common GUI denominator for quite some time, if the experience of Perl and Python are any indication. But I think there are others better qualified to comment on the merits of your particular proposal. In connection with your general question, I'd like to ask if you or others are familiar with John E. Grayson's book, "Python and Tkinter Programming", which proclaims itself to be "a clean, object-oriented interface to the Tcl/Tk graphical toolkit" and which Guido claims is "packed with well-explained examples that teach good Python habits". I don't know much Python and I haven't read this book, but I wonder if others who do and have think that its approach could provide any useful guidance for "OOP-ier" (cool neologism!) Ruby/Tk work. Conrad Schneiker (This note is unofficial and subject to improvement without notice.)