RubyCocoa で非定型プロトコルの objc_export を自動的に
Leopard Tech Talks のあとでふじもとさんと話して「こうしたらいいんじゃ?」てなったのが、とりあえず実装できたので [rubycocoa-devel:745] として投げた。ちょっと追加した API で気に入らない部分があるんで、まだコミットはしてない。
このパッチで実現できること
- 非定型プロトコルと同名のメソッドが定義されると、自動的に objc_export/objc_method 相当の処理を行う
- その処理中で必要なので、BridgeSupport の非定型プロトコルに関するメタデータをとってくる API を Ruby からも呼べるように
しばらく devel で様子見かな。
(2007/02/18 追記)Laurent から「これって意味ないんじゃ?」との指摘([rubycocoa-devel:746])。あー確かに。考え直してみると、RubyCocoa bundle で正しくハンドルできない API がある のが全部同じ原因なことがわかった。ようするに .bridgesupport が読まれてないのだ([rubycocoa-devel:748])。mach-o モジュールと、.bridgesupport ファイルのロード状況を同一と見なしているのが問題。oc_import.rb に手をいれれば、わりと簡単に直せるはず。