[MacRuby] #1280: Developers should be able to invoke Objective-C blocks passed to a MacRuby method
MacRuby
ruby-noreply at macosforge.org
Sun May 15 16:02:22 PDT 2011
#1280: Developers should be able to invoke Objective-C blocks passed to a MacRuby
method
----------------------------------+-----------------------------------------
Reporter: christian@… | Owner: lsansonetti@…
Type: enhancement | Status: new
Priority: major | Milestone:
Component: MacRuby | Keywords: blocks
----------------------------------+-----------------------------------------
MacRuby currently allows passing ruby Proc objects to ObjC methods that
accept a block. However, It doesn't provide a way for ruby methods to
invoke ObjC blocks.
For example, I need a way to invoke blocks passed to a MacRuby method like
this:
{{{
def performRequest(request, success:success_callback,
error:error_callback)
result = ... #
success_callback.call(result) # <-- Doesn't work!
end
}}}
While I'm not aware of any Cocoa interfaces that require this, I'm using
blocks in my own frameworks. In particular, I've defined a protocol that
defines a method with callbacks:
{{{
- (BOOL)performRequest:(id)request success:(void(^)(id result))success,
error:(void(^)(NSError *))error;
}}}
I want to be able to write a ruby implementation of this protocol, for
testing purposes.
If for some reason the current syntax isn't sufficient to allow this, I
thought it might be intuitive to mark blocks using the '&' operator, like
this:
{{{
def performRequest(request, success:&success_callback,
error:&error_callback)
# ...
end
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/1280>
MacRuby <http://macruby.org/>
More information about the macruby-tickets
mailing list