Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
RubyCocoa - selectors for Ruby classes
Gabriele Marrone
11/3/2006 12:14:00 AM
Hello.
I'm using the RubyCocoa framework (well, trying to), freshly compiled
today (oops, yesterday) from the svn stable repository.
I want my application controller to get asynchronous notifications
when a file descriptor has new data to be read, so I decided to use
OS X infrastructure.
Here is the interesting part of the code:
class Controller < OSX::NSObject
addRubyMethod_withType('dataAvailable:', 'v@:@')
def dataAvailable(obj)
# do something
end
def setup_notification_observer
OSX::NSNotificationCenter.defaultCenter.addObserver_selector_name_object
(
self,
'dataAvailable:',
"NSFileHandleDataAvailableNotification",
@fileHandle
)
end
def setup_data_available_notification
@fileHandle.waitForDataInBackgroundAndNotify
end
...
end
Of course setup_data_available_notification and
setup_notification_observer are called by awakeFromNib.
Everything should be right, but when the default center tries to send
my Controller a message I get logged:
2006-11-03 00:46:37.262 Fango[19411] Exception raised during posting
of notification. Ignored. exception: *** -[NSProxy
forwardInvocation:] called!
It looks like it can find the method signature (provided by
addRubyMethod_withType), but the forwardInvocation: method of the
Objective-C wrapper to my ruby Controller class doesn't actually call
my ruby method. In fact, this makes me suppose forwardInvocation:
isn't overrided at all and the message is catched by the parent class
which raises an exception, but I haven't read RubyCocoa source code
so I can't be sure.
I followed closely what's written here:
http://www.ruby...
appleremote/2 . I double checked Apple documentation of
NSNotificationCenter, NSFileHandle.
I also searched on google for other documentation about selectors and
RubyCocoa, but all I could get was code with japanese comments which
didn't use addRubyMethod_withType at all. I guess that code was for
another version of RubyCocoa (newer, maybe? From the unstable
repository?).
This is what I tried:
- removing addRubyMethod_withType
- adding ns_override
- using :dataAvailable_, :dataAvailable, 'dataAvailable' instead of
'dataAvailable:'
- defining the method dataAvailable_ instead of dataAvailable
- something else I can't remember :P
Most of which I didn't expect to actually work, but decided to try
anyway. Some bugs just make you paranoid.
I'm using Mac OS X 10.4.8 (PPC), XCode 2.4.
Any ideas? :)
Thanks in advance!
1 Answer
Harry
1/24/2007 2:06:00 PM
0
> I also searched on google for other documentation about selectors and
> RubyCocoa, but all I could get was code with japanese comments which
> didn't use addRubyMethod_withType at all. I guess that code was for
> another version of RubyCocoa (newer, maybe? From the unstable
> repository?).
>
>
> Any ideas? :)
>
Hi,
I don't know anything about RubyCocoa but I happened to see these
links in the Japanese mailing list.
They are in English.
Hope it helps.
http://rubycocoa.source...
http://rubycocoa.source...
doc/
http://rubycocoa.source...
doc/unstable/
Harry
--
http://www.kakueki.com/ruby...
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
RubyCocoa - selectors for Ruby classes
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password