おそらくはそれさえも平凡な日々

MouseX::Getoptでハイフン区切りの引数を受け取る方法

MouseX::Getoptはプロジェクトで便利に使っているのですが、細かいことで気になっていたのはそのまま使うとオプション名がアンスコ区切りになってしまうことでした。--dry_runとかちょっとかっこ悪いやん、くらいのほんと些細などうでもいいやつです。

gfxからそういう変換を受け付けるようにするp-rあったら送ってきてもいいよとは言われていて、そういうTrait作る感じかなーとか思ってたけど、まあ以下の様な感じで良いかってなりました。

package MyCLI {
    use Mouse;
    with 'MouseX::Getopt';
    has dry_run => (
        traits   => [ 'Getopt' ],
        is       => 'ro',
        isa      => 'Bool',
        cmd_flag => 'dry-run',
    );
}
my $app = MyCLI->new_with_options;
...

プロジェクトだとMouse使う前提なのでMouseX::Getopt使ってます。スクリプトでもちゃんとモジュール化されたpmファイルを作る前提になるので、テストとかも書きやすくなるし、script/以下にファイルが散らばらないし、便利ですね。

created at
last modified at

2013-12-27T17:33:56+0900

comments powered by Disqus