Home > Software >

必要なシステム

  • OS X 10.9 以降
    • OS X 10.14.6 で開発/テストしております。

ダウンロード

Version 3.0.2 -- 2017-09-29

古いバージョン

ModuleLoader

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 への依存性なくして、他のコンピュータへの配布に都合のスクリプトを簡単に作れます。
  • ライブラリを指定したタイミングで強制的にリロードさせることができます。
  • テキストファイルやアプレット、ドロップレットもモジュール/ライブラリとして扱えます。
  • 任意の場所をライブラリの検索場所に設定できます。
    • 幾つもの方法で非常に柔軟に扱えます。

更新履歴

  • 4.0 --
    • スクリプティング機能追加ではなく、AppleScript Library とバックグラウンドアプリケーションによる実装に変更。
      • macOS 10.4 の SIP でスクリプティング機能追加が使えなくなったため。
    • 構文の変更:
      • property ModuleName : module → property ModuleName : "@module"
      • boot (module loader) for me → script "ModuleLoader"'s setup(me)
      • 詳細はマニュアルで確認してください。
  • 3.0.2 -- 2017-04-19
    • 間違ったライブラリを読み込んでしまうことがある不具合を修正。
      • ライブラリ名を後方一致ではなく、完全一致で探すようにした。
  • 3.0.1 -- 2016-12-16
    • AppleScriptObjC との互換性を改善。
    • Local Loader アプレットの起動場所が /private/var/folders/ 以下の場合、Gatekeeper Path Randomization の影響と考え、エラーを発生するようにした(H さん、ありがとうございました)。
  • 3.0 -- 2016-08-23
    • AppleScript Libraries と相互運用できるようにした。
      • OS X 10.9 で導入された AppleScript Libraries のライブラリの保存場所(~/Libraries/Script Libraries, /Libraries/Script Libraries) からもモジュール/ライブラリを検索/ロードします。
      • AppleScript Libraries の 「use LibName : script "LibName"」形式のライブラリのロードを解釈して、AppleScript Libraries の代わりにロードします。
    • module loaded by イベントを実装した時、その戻り値をロードしたライブラリとして扱われるようになった。
    • コードの近代化
    • Mac OS X 10.7 以降が必要になった。
    • コード署名を追加した。
  • 2.3.4 -- 2016-02-05
    • ガーベージコレクションをサポートありでコンパイルした。
    • 細かい修正。
  • 2.3.3 -- 2011-10-08
    • メモリーリークを修正。
  • 2.3.2 -- 2011-10-07
    • メモリーリークを修正。
  • 2.3.1 -- 2011-10-03
    • .applescript ファイルがロードできなくなっていた不具合を修正(匿名さん、ありがとうございました)。
  • 2.3 -- 2011-09-13
    • モジュールのバージョンを指定してロードする機能を追加。
      • AppleMods を参考にさせていただきました。
  • 2.2.4 -- 2011-03-05
    • Mac OS X 10.6 の osacompile コマンドでエラーが発生する不具合を修正(匿名さん、ありがとうございました)。
    • local loader オプション "collecting modules", "only local" を追加。
  • 2.2.3 -- 2010-11-21
    • Mac OS X 10.4 で動作しない不具合を修正。
  • 2.2.2 -- 2010-08-27
    • 内部の変更
  • 2.2.1 -- 2010-08-18
    • Mac OS X 10.6 で local loader がエラーになる不具合を修正(hiRaoka さん、ありがとうございました。)。
    • 英語マニュアルの改善(Ed Stockly さん、ありがとうございました)。
  • 2.2 -- 2010-05-24
    • テキスト形式のAppleScript ファイル(.applescript)をモジュールとしてロードできるようにした。
    • loader object に次のハンドラを追加/マニュアルに記載
      • load
      • set_additional_paths
      • prepend_paths
      • module_paths
      • clear_cache
  • 2.1.1 -- 2010-01-15
    • タイプコードを持たないスクリプトファイルをロードできない不具合を修正。
  • 2.1 -- 2010-01-12
    • 新しいモジュール読み込み方式を追加。
    • make loader コマンドを module loader に変更
  • 2.0 -- 2009-11-25
    • スクリプティング機能追加として再実装した。
  • 1.3.3 -- 2009-03-11
    • proxy() の返り値を parent にしたモジュールをロードする時、エラーが発生する不具合を修正。
  • 1.3.2 -- 2007-09-15
    • パフォーマンスの改善
    • HelpBook.osax をバンドル内に収めるようにした。
  • 1.3.1 -- 2007-05-14
    • 英語 マニュアルを追加
  • 1.3 -- 2007-02-14
    • 高速化しました。
    • 複数のモジュールをロードしたとき、共有モジュールを同一に保つ機能を追加しました。
  • 1.2 -- 未公開
  • 1.1 -- 2007-01-05
    • サブフォルダの中も検索するようにした。
    • 一度、ロードしたモジュールはキャッシュするようにした。
      • これにより、大量のモジュールがあっても一度ロードした物は素早く値を返します。
      • もちろん、更新されたモジュールは自動的に検出して最新のものをロードします。
  • 1.0 -- 2006-04-12
    • 初公開