Mojolicious::Plugin::LocaleTextDomainOOというモジュールでCPANおーさーとなる
- 2016.08.25
- perl プログラミング
- CPAN, Mojolicious, perl
Mojolicious::Plugin::LocaleTextDomainOO - I18N(GNU getext) for Mojolicious. - metacpan.org
きっかけ
Mojolicousで国際化するプラグインにはMojolicous::Plugin::I18Nというものがある。これは良く出来ていて、URLやドメイン名での振り分けが出来たりする。
国際化の部分はLocale::Maketextを使う。Locale::Maketext::Lexiconも使えばpoファイルなどもつかえる。
普通に使う分なら問題ないのだけど、GNU gettextのmsgctxt
やtext domain
のようなことは出来ない。
CPANをいろいろ漁ってみて、gettextコンバーチブルなモジュールでLocale::TextDomain::OOってのが自分の要件に合いそうなのでこちらをMojoliciousで使えるようにしてみた。
手順
Perl Moduleの作成にはMinillaを使った。MojoliciousプラグインをMinillaで開発する手順は別エントリーに書いた。
Minillaを使ってMojoliciousプラグインを開発する
PAUSEアカウントを取得
- こんな僕が CPAN Author (一応) になるまで。 - (゚∀゚)o彡 sasata299's blog
- モジュール作成からCPANに上げるまでの手順 - $shibayu36->blog;
- CPAN Author になった話 - えがわたにっき
注意点は各エントリー等に書いてある通り。一番悩むのはA short description of why you would like a PAUSE ID:
というPAUSEの申請理由でした。
長くかかる場合もあるみたいだけど、自分の場合はその日のうちに返信来ていました。
Minilla release
MinillaでCPANにアップロードする方法はCPAN に姉を公開した話とかを参考に。
モジュール開発で一番大変なのはドキュメントの作成。恐らく通じないであろう英語で書かなくてはならないのツラい。ま、コード載せておけば半分くらいつたわる、はず。
あと、cpanfile.snapshot
の扱いをどうすればよいかが分からない。他のモジュール見て回ると一緒にパッケージングされていないので.gitignoreに書いておいたけど、この方法で良いか不明。
失敗談
Mojolicous::Plugin::I18N の機能はそのまま使いたかったのでパッケージに含めてアップロードしたらネームスペースの権限に引っかかってしまった。おれおれモジュールの場合には問題ない事(?)だったので注意したい。
おそらくはそれさえも平凡な日々: CPANで意図しない名前空間の取得を防ぐために
懸念点
Locale::TextDomain::OOは、Mooベースだし、結構依存が多い。Cartonでパッケージ管理しているなら特に問題ないのかな。
雑感
- とにかくモジュール開発にはMinilla(やDist::Milla)が大変便利。
- CPANに公開するとなるとそれなりにテストやドキュメントを整備しなくてはいけないので大変な反面、とても勉強になる。
- いろいろ試行錯誤したけど、それも勉強になる。
と、どれをとっても勉強になるので是非挑戦して頂きたい。
-
前の記事
Mojolicious、Mojolicious::Liteアプリをマウントする方法 2016.08.21
-
次の記事
AtomエディターのemmetをMojoliciousのテンプレートで使う 2016.09.04