Dist::Makerを使ってひな形を作ってみる。
はじめに
rails new みたいなのを perl でやろうとしたら今もModule::Setupで作ったflavorをセットアップしてやるのが一般的なのかな??
— こんぼい。 (@Konboi) 2014, 5月 18
@Konboi Amon2なんかは、独自で雛形作成機構を持ってるけど、自分独自のやつ作りたいんだったらDist::Makerとかが最近は便利かなー
— songmu (@songmu) 2014, 5月 18
@Konboi amon2とかmojoとかnephiaは自前でそのしくみ持ってます。Dist::Makerってのもある
— /dev/null (@mackee_w) 2014, 5月 18
ってことなので Dist::Makerを使ってみた。
インストール
Dist::Makerのインストール
cpanm Dist::Maker
インストールできると dim
コマンドが使えるようになる。
(発音が正しいかは分からないが、でぃむって言葉がなにか強力なものを感じる)
ひな形の作成
dim init Dist::Maker::Template::MyApp::Template cd Dist-Maker-Template-MyApp-Template
$ tree ├── Changes ├── MANIFEST ├── MANIFEST.SKIP ├── MANIFEST.SKIP.bak ├── META.yml ├── MYMETA.json ├── MYMETA.yml ├── Makefile ├── Makefile.PL ├── README ├── author │ └── requires.cpanm ├── blib │ ├── arch │ │ └── auto │ │ └── Dist │ │ └── Maker │ │ └── Template │ │ └── MyApp │ │ └── Template │ ├── bin │ ├── lib │ │ ├── Dist │ │ │ └── Maker │ │ │ └── Template │ │ │ └── MyApp │ │ │ └── Template.pm │ │ └── auto │ │ └── Dist │ │ └── Maker │ │ └── Template │ │ └── MyApp │ │ └── Template │ ├── man1 │ ├── man3 │ │ └── Dist::Maker::Template::MyApp::Template.3 │ └── script ├── inc │ └── Module │ ├── Install │ │ ├── AuthorTests.pm │ │ ├── Base.pm │ │ ├── Makefile.pm │ │ ├── Metadata.pm │ │ ├── Repository.pm │ │ └── WriteAll.pm │ └── Install.pm ├── lib │ └── Dist │ └── Maker │ └── Template │ └── MyApp │ └── Template.pm ├── pm_to_blib ├── t │ ├── 000_load.t │ └── 001_basic.t └── xt ├── perlcritic.t ├── pod.t ├── podcoverage.t ├── podspell.t └── podsynopsis.t
ひな形ができる。
つくってみる
.gitignoreに.swpを追加し、README.mdをつくるサンプルをつくってみる
# lib/Dist/Maker/Template/MyApp/Template.pm package Dist::Maker::Template::MyApp::Template; use 5.008_001; use strict; use warnings; use Mouse; use MouseX::StrictConstructor; extends 'Dist::Maker::Base'; with 'Dist::Maker::Template'; our $VERSION = '0.01'; sub dist_init { } sub distribution { return <<'DIST' @@.gitignore *.swp @@REAME.md # さんぷるーーーーーーー DIST } no Mouse; __PACKAGE__->meta->make_immutable(); 1;
Dist::Templateをインストールする
podのカバレッジが低いぞって怒られますが、テストなので -f オプションをつけてインストールしてしまいます。
ちゃんと作ったらgithubあたりに上げて公開するのがよさそう。
cpanm -f .
$ cpanm -f . --> Working on . Configuring Dist-Maker-Template-MyApp-Template-0.01 ... OK Building and testing Dist-Maker-Template-MyApp-Template-0.01 ... FAIL ! Testing Dist-Maker-Template-MyApp-Template-0.01 failed but installing it anyway. Successfully installed Dist-Maker-Template-MyApp-Template-0.01 1 distribution installed
実際にTemplteを作ってる
適当な場所で
$ dim init MySample MyApp::Template >> Command::init: running with MySample MyApp::Template ... >> Command::init: finished. cd MySample
移動して
$ tree -a . ├── .dimconfig ├── .gitignore └── REAME.md
$ cat .gitignore *.swp
できてる!!!!!!
あとはこれを拡張してけばいい感じのひな形になるはず!
嵌ったこと
- 名前空間は
Dist::Maker::Template::Hoge::Fuga
にしないといけない - 使うときは
Hoge::Fuga
でしてする
さいごに
Dist::Makerはひさいちのブログの記事が分かりやすく解説してましたね(遠い目
— songmu (@songmu) 2014, 5月 18
- moe project の記事が分かりやすいらしいが今はみれない ><
- 久しぶりにちゃんとしたブログ書いた気がする。
参考URL
shibayu36/p5-Dist-Maker-FromProject
業務終了後、git logとDist::Makerでさっさと帰る話
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (16件) を見る