Objective-CのメソッドをRubyCocoaから呼ぶのはとても簡単である。
πを計算する以下のようなクラスが存在するとき、
#import <Cocoa/Cocoa.h>
@interface Pi : NSObject
- (double)calc:(id)param;
@end
@implementation Pi
- (double)calc:(id)param
{
// すごい方法でπを計算
return 3.14159265358979;
}
@end
Xcodeを使ってこれからPi.frameworkを作成し、
/Library/Frameworksとかに置いておけば
以下のように簡単にRubyから呼び出すことができる。
require 'osx/cocoa'
include OSX
NSBundle.bundleWithPath("/Library/Frameworks/Pi.framework").load
ns_import :Pi
class Pi < NSObject
addRubyMethod_withType('calc', 'v@:@')
end
pi = Pi.alloc.init
puts pi.calc(nil)
自前のCプログラムをすぐにRubyから使えるので便利である。