ModuleLoader は AppleScript のライブラリシステムです。必要最小限の記述で外部のライブラリ/モジュールとしてのスクリプトをロードすることができます。
OS X 10.9 から AppleScript にライブラリ機能がサポートが追加されました(AppleScript Libraries) 。ModuleLoader は、それ以前の2006年から継続的に開発/メンテナンスされてきたライブラリシステムです。おおよそ AppleScript Libraries と同じことができます。
すなわち、
- 決められた場所からライブラリを検索して、スクリプトオブジェクトとしてロードすることができます。
ホームフォルダ以下の及びルートディレクトリ以下の
- Library/Scripts/Modules
- Library/Script Libraries
からライブラリを探します。
- ライブラリが必要としているライブラリもロードします。
- ロードするライブラリのバージョンを指定できます。
OS X 10.9 以降では、AppleScript Libraries がファーストチョイスになるでしょう。ModuleLoader は、AppleScript Libraries と共に使うことができ AppleScript Libraries に次のような機能を追加します。
- コンパイル時にすべてのライブラリの読み込み、ライブラリを組み込んだまま保存できます。
- ライブラリすべて property に収め、実行時のライブラリ及び ModuleLoader への依存性なくして、他のコンピュータへの配布に都合のスクリプトを簡単に作れます。
- ライブラリを指定したタイミングで強制的にリロードさせることができます。
- テキストファイルやアプレット、ドロップレットもモジュール/ライブラリとして扱えます。
- 任意の場所をライブラリの検索場所に設定できます。
変更点は内部のコードの修正のみで機能面での変更や修正はありません。
Loading libraries at compile-time
use scripting additions
use SimpleTextLib : script "SampleLibs/SimpleTextLib"
property _ : script "ModuleLoader"'s setup(me)
SimpleTextLib's replace_text("Do your task", "your", "my")
Force relaoding at run-time
use SimpleTextLib : script "SampleLibs/SimpleTextLib"
script "ModuleLoader"'s setup(me)
SimpleTextLib's replace_text("Do your task", "your", "my")