(Sorry if this mail shows up multiple times, the mailing list suddenly has some issues with my gmail accounts, so this is yet another repost attempt)
Cool, another dead horse to kick.
It works for starters.
cocoa is a more direct approach where methods are equivalent to the apple docs - as they are bindings, not some wrapped up stubs.
I would probably guess there is a lot of stuff not even accessible through rubyobjc - if you even get that 6 year old thing up and running.
cocoa exploits modern ruby to use keyword arguments and everything that makes ruby quite equivalent to what you would do in objective-c.
cocoa is a modern integration, and here is a example usage that will probably massage your marble for a moment.
Here you see multiple tasks of NSTableViewDelegate. Notice how cocoa exploit keyword arguments to allow you to define the same method twice, with different keyword arguments equivalent to the two tasks selectors.
def tableView(table_view, objectValueForTableColumn: nil, row: nil)
cache[row].send(objectValueForTableColumn.identifier.to_s.to_sym).to_s
end
def tableView(table_view, shouldSelectRow: nil)
hooks[:on_select_row].call(shouldSelectRow) if hooks[:on_select_row]
true
end
Patrick