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] }
Tomas
From: [email protected]
[mailto:[email protected]] On Behalf Of Sean C.
Hess
Sent: Thursday, August 14, 2008 1:29 PM
To: [email protected]
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?
Thanks
~sean
On Thu, Aug 14, 2008 at 2:22 PM, Tomas M.
<[email protected]mailto:[email protected]>
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 { …}?
Tomas
From:
[email protected]mailto:[email protected]
[mailto:[email protected]mailto:[email protected]]
On Behalf Of Sean C. Hess
Sent: Thursday, August 14, 2008 12:04 PM
To: [email protected]mailto:[email protected]
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.
Thanks!
~sean