Module::Starterでモジュールのひな形を作る

ある程度のコード量を持つPerlのスクリプトは、スクリプト本体と多数の自作モジュール、そのテストコードから構成されると思います。

しかし、このモジュールやテストコード用のディレクトリを作ったり、インストール用のスクリプトをイチから手作業で用意するのは面倒です。Andy Lesterさんが作った Module::Starter というモジュールを使うと面倒くさい手順無しに簡単にこれらのディレクトリやファイルのひな形を用意してくれます。

  1. Module::Starterをインストール

  2. Module::Starter は標準モジュールではないので CPAN や、 MacPorts からインストールします。

    • CPANからインストールする場合
    • $ sudo cpan Module::Starter

    • macportsからインストールする場合
    • $ sudo port install p5-module-starter

    DebianFedora等のLinuxディストリビューションの場合は、それぞれ専用のパッケージが用意されているので、パッケージを検索して下さい。

  3. Module::Starter の設定ファイルを準備

  4. Module::Starter には、モジュールのひな形を作る module-starter というコマンドが有ります。以下の様に使います。

    $ module-starter --module=Foo::Bar,Foo::Bat \
    >        --author="ash" --email=info@roova.jp

    しかし、モジュール名は毎回変わると思いますが、作者を示す author や、 email アドレスを示す email は毎回同じ内容を指定するのは面倒です。そのため、事前に設定ファイルを作っておくと指定を省略する事が出来ます。

    「~/.module-starter/config」というテキストファイルを作って、その中にパラメータを書き込んでおきます。
    例えばこんな内容です。

    author: ash
    email: info@roova.jp
    builder: Module::Build
    ignores_type: git

    最初の author と email はそれぞれモジュールの作者と、 email アドレスを指定します。

    次の builder はモジュールをインストールする仕組みを指定します。この例では Module::Build を使っています。 ExtUtils::MakeMakerModule::Install を指定する事もできます。 Windows 環境でも使う事を考えると、 nmake コマンドが不要な Module::Build がお勧めです。

    最後の ignores はバージョンコントロールソフトで管理対象外にするファイルの形式を指定です。この例は git で使う.gitignoreファイルが作成されます。意外とこのファイルを勝手に作ってくれるのが一番便利なのかもしれません。

  5. module-starterの実行

  6. 設定ファイルの準備が出来たら、 module-starter コマンドを実行します。

    $ module-starter --dir=FooApp --module=Foo::Bar

    この例では、FooAppというディレクトリを作成し、その中にlib/Foo/Bar.pmというモジュールのひな形が用意されます。t/ディレクトリ配下にはテストコードのひな形が用意されています。

    実際のファイル構成は以下の様になります。これでひな形が完成しましたので、後は実際にコードを書いていくだけです。

    $ tree -a FooApp/
    FooApp/
    |-- .gitignore
    |-- Build.PL
    |-- Changes
    |-- MANIFEST
    |-- README
    |-- lib
    |   `-- Foo
    |       `-- Bar.pm
    `-- t
        |-- 00-load.t
        |-- boilerplate.t
        |-- manifest.t
        |-- pod-coverage.t
        `-- pod.t
    
    3 directories, 11 files

Module::StarterはPlugin機能をサポートしていて、様々な拡張用プラグインがリリースされています。CPANで検索してみて下さい。


→Perl To The Peopleのインデックスページへ戻る

トラックバックURL

このエントリーのトラックバックURL:
http://ash.roova.jp/mt/mt-tb.cgi/56

コメントする