読者です 読者をやめる 読者になる 読者になる

その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

POD をpm ファイルから抜き出してREADME.pod に埋め込むスクリプトを書きました

CPAN モジュールにPOD 形式のドキュメントは不可欠です。

一般的にはpm ファイルにPOD を記述すると思うんですが、GitHub なんかにホスティングしたい場合は
それとは別にREADME.pod を用意してやりたかったりします。
その場合、POD の内容を変更する際にはpm ファイルのPOD を書き換えて、
更にREADME.pod も書き換えなければならなくなります。

めんどい

pm ファイルに行った変更とREADME.pod に行った変更は同一であることが保証されなければならないし、
もしかしたら、どちらか一方だけを書き換えて他方は書き換えるのを忘れてしまうかもしれないし、
そもそもpm ファイルとREADME.pod に対して同じ処理をそれぞれ行うのは面倒くさいわけです。

なのでスクリプト書いた

コイツです。

なにをするのか

pm ファイル中に記述されているPOD の内容を持ってきて、
それをREADME.pod に埋め込みます。

くわしい動作

まずMANIFEST ファイルを見て、対象のpm ファイルを持ってきます。*1
で、Pod::POM というPOD をパースしてオブジェクトモデルに変換してくれるナイスなモジュールがあるので、
そいつに取得してきたpm ファイルを食べさせてPOD の中身を持ってきます。
そのPOD の中身をPod::POM::View::Pod を使ってREADME.pod に出力します。*2

ただそれだけ!

注意

MANIFEST ファイルの存在するディレクトリ上で実行しないと動きません。

そんな感じです

ぶっちゃけ、同じようなスクリプトは既に存在してると思うんですが、探すのがめんどかったので書きました。
よければお使いください。

*1:ここらへんはTest::Synopsisを参考にしました

*2:ここらへんは[http://www.nntp.perl.org/group/perl.pod-people/2011/02/msg1564.html]を参考にしたというか、ママです