ということでCPANモジュール第2弾 Acme::HowToMakeSushiをリリースしました🎉
githubはこのようになっています
metacpanもこのようになっています
制作背景
多くのプログラマーが愛してやまない🍣と多くのPerlMongerが愛してやまないPerlプログラムはほぼ同値な関係ではないか.
だったらこの二つを同時に作成出来ればPerlMongerの生産性があがるのでは無いかという発想の元生まれたmoduleです.
尚このモジュールはOkinawa.pm #4 エイプリルパールで発表しました.リリースしたのは4/1なのでお察しください
使い方
Acme::HowToMakeSushiはcpanmなどでインストールすると,本体の他に Acme::HowToMakeSushi::Photoもインストールされます. これらは同時に使用することが出来ない仕様となっています.
HowToMakeSushi
HowToMakeSushiはexit codeが0であるPerlプログラムであるならば寿司を完成させます. ただし 誰もお前を愛さない 的なコード.つまりexit codeが0以外のperlプログラムを作成した場合 あの漫画 っぽいメッセージと共に崩れた寿司を作ります.
実際に試してみると こんな感じに寿司が出来ます.
dieすると 誰もお前を愛さないメッセージと共に崩れます.
動作原理
ENDブロック内で $?
の値に応じてAAをヒアドキュメントの形で print
に渡しています
HowToMakeSushi::Photo
AAだけではつまらん!! 実際に現物を作れよ!!との声に答えて::Photoではjpgデータを出力します.
perl -MAcme::HowToMakeSushi::Photo -e '' >sushi.jpg
などとすると
と寿司が出来ます.
動作原理
printを出力するところまでは先程と同様ですが,今回は予めbase64にエンコードしたjpgデータを用意しています. これをMIME::Base64を用いて,デコードしてprintしています. つまりAcme::Cakeのアルゴリズムを使っています. 画像をbase64エンコードするツール
今回もモジュール雛形作成はMinillaを用いて行いました.cpanfileを作成する際に
perl Build.pl mymeta-cpanfile --no-configure >cpanfile
などとすればいい感じにcpanfileを作ってくれるので楽です.尚cpanfileを作成するにあたっては scan-prereqs-cpanfile
などというCPANモジュールのコマンドも存在しているので,詳細は調べたいと思っています.
Minillaでモジュールを作成する場合 *.pm
ファイルの =encoding utf-8
以降の部分にSYNOPSIS等の記述を行えば,Readmeにもいい感じに反映されます.すごい.
3月に引き続き2ヶ月連続Acmeモジュールリリースが達成できたのでちょっと嬉しいです. 尚このモジュールをリリースしたのは4/1なのですが,3/31がリリース日となるエイプリルフールもありました.