[Ironruby-core] Events?

Tomas Matousek Tomas.Matousek at microsoft.com
Thu Aug 14 18:08:56 EDT 2008

It seems that both parts of the code are Ruby. So you should use Ruby language features. It's possible to emulate CLR events by a list of blocks.

event = []

# adding a handler:
handler = lambda { ... }
event << handler

# removing a handler:
event.delete handler

# firing an event:
event.each { |handler| handler[args] }


From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Sean Clark Hess
Sent: Thursday, August 14, 2008 1:29 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] Events?

Let's say I create a class called MovieControls, that wraps some existing xaml.  The xaml has several buttons, including a toggle play/pause button, and a previous and next button.

MovieControls would listen to the click of the play/pause button, and would dispatch a "play" event when they clicked it to play it, and "pause" for the opposite.

I want to be able to listen to MovieControls to know when to tell my video to "play" and "pause".

So, it would be something like this...  In MovieControls
play_pause_button.click { if (isPlayState) dispatch("play") else dispatch("pause") end }

Then, in my app
myMovieControls.play { doPlay }
myMovieControls.pause { doPause }

Does that make more sense now? If this seems totally out of the blue, how are people currently handling abstracting away this kind of functionality?


On Thu, Aug 14, 2008 at 2:22 PM, Tomas Matousek <Tomas.Matousek at microsoft.com<mailto:Tomas.Matousek at microsoft.com>> wrote:

I'm not sure I understand the scenario. Would you like to declare an event on Ruby object that you want to hook from C# code? Like rubyEngine.Operations.GetMember(obj, "my_event") += delegate { ...}?


From: ironruby-core-bounces at rubyforge.org<mailto:ironruby-core-bounces at rubyforge.org> [mailto:ironruby-core-bounces at rubyforge.org<mailto:ironruby-core-bounces at rubyforge.org>] On Behalf Of Sean Clark Hess
Sent: Thursday, August 14, 2008 12:04 PM
To: ironruby-core at rubyforge.org<mailto:ironruby-core at rubyforge.org>
Subject: [Ironruby-core] Events?

Hi all,

Is there a built-in event system for IronRuby?  I know I can handle events with button.click { }, but what if I want to dispatch my own, custom events (from a class I created myself?).

I wrote my own event system, but I would prefer to use a built-in dispatch method if it exists.



Ironruby-core mailing list
Ironruby-core at rubyforge.org<mailto:Ironruby-core at rubyforge.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080814/42303f57/attachment-0001.html>

More information about the Ironruby-core mailing list