XHandler
XHandler はハンドラ名を文字列で指定してハンドラを実行する為の AppleScript ライブラリです。
その他に、次のことができます。
- スクリプトオブジェクトがハンドラを実装しているか調べることができます。
- ハンドラが実装されていなければ、別のスクリプトにハンドラの呼び出しを預けることができます。
実行中にハンドラを柔軟に切り替えることができ、Chain of Responder や method forwarding など、動的な振る舞いの実現に訳にたちます。
AppleScript の言語レベルではサポートされていない機能を実現する AppleScript ライブラリです。
use XHandler : script "XHandler"
script BScript
on say_msg(a_msg)
return "hey " & a_msg
end say_msg
end script
script AScript
on show_msg(a_msg)
return "hello " & a_msg
end show_msg
-- successor object to foward calling handlers which are not implemented.
on successor()
return BScript
end successor
end script
(*== Simply calling handler ==*)
set xhandler1 to XHandler's make_with("show_msg", 1)
log xhandler1's do(AScript, "good morning") -- hello good morning
(*== Test whether AScript can respont to the handler "show_msg" ==*)
log xhandler1's responded_by(AScript) -- true
(*== If target object can't resond to the handler, try to call handler in a successr object . ==*)
set xhandler2 to XHandler's make_with("say_msg", 1)
log xhandler2's call_to(AScript, "good evening") -- "hey good evening"
更新履歴
- 1.4 -- 2020-02-05
- ヘルプブックの表示に OpenHelpBook.scptd を使うようにした。
- OS X 10.9 以降が必要です。
- 1.3 -- 2010-04-01
- ShowHelpBook を使わないようにした。
- responded_by を追加。
- 1.2 -- 2008-02-28
- positional parameter をもったすべてのハンドラをサポートするために、call_handler を取り除いた。
- 日本語のマニュアルを追加
- ...
- 1.0 -- 2007.06.06
- 初公開