2011-09-21 11 views
7

私はRuby-Tkを使ってOS Xのデスクトップアプリケーションを開発しています.AppleのためのApple Eventsインターフェイスを提供したいと思います。これは、アプリケーションが応答するAppleScriptコマンドの辞書を定義し(Apple Eventsがアプリケーションに送信されることに対応します)、ユーザー/他のアプリケーションがAppleScriptコマンドでRuby-Tkアプリケーションをスクリプト化できることを意味します。他のスクリプティング言語では、Pythonはhttp://appscript.svn.sourceforge.net/viewvc/appscript/py-aemreceive/でpy-aemreceiveライブラリを、Pythonはhttp://tclae.sourceforge.net/にtclAEライブラリを介してTclをサポートしています。私はRubyで同様の機能を探していて、空になってしまった。RubyはOS XでAppleイベントに応答するためのメカニズムを提供していますか?

RubyとObjective-Cの間に低レベルのインタフェースを提供するrubyobjcブリッジがありますが、この宝石はほとんど使われていないようで、例やドキュメントにはほとんど欠けています。これは追求する実りある道となるでしょう。

NB:MacRubyは動作するかもしれませんが、MacRubyはTkと互換性がないので、MacRubyから除外されます。また、RubyOSAとrb-appscriptは私が探しているものではありません.Appleイベントを受け取っていない他のアプリケーションにApple Eventを送ることができます。

+0

一般的なAEまたはhttp://www.tcl.tk/man/tcl8.6/TkCmd/tk_mac.htmに記載されている(Tcl)APIを介してTkによってサポートされるもの –

答えて

1

他の選択肢がない場合は、必要なAppleEvent C APIの部分(主にAEInstallEventHandlerおよび関連する関数)用に独自のRubyラッパーを作成する必要があります。幸運にも、アップルのデベロッパー向けドキュメントでは「レガシー」のステータスに落ちたにもかかわらず、AppleはこのAPIをサポートしています(ただし、おもしろく、非推奨ではありません)。私はこれらの関数をRubyのffiの宝石、あるいはおそらくはRubyのC API(これらの関数はまだ掘り下げておく必要があります)を通して統合します。 C APIを直接使用すると、他の宝石/モジュールへの依存の必要性が減ります。これがうまくいくなら私はそれを宝石としてリリースします。

Donal Fellowsのコメントに関しては、カスタムAppleEventsが必要です。RubyのTkインターフェイスからTkを呼び出すことで、彼が推薦するドキュメントにTkでサポートされているものがある可能性があります。

1

appscriptライブラリ(注:OS Xが提供するRubyでしか動作しないようです)を試してみるか、OS Xで利用可能なAPIのほとんどすべてをラップするMacRubyを試してください。

関連する問題