@songmuです。
このエントリーはteck.kayac.com Advent Calender 2013の2日目のエントリーです。
今年も無駄にあまり知られないCPANモジュールをそこそこ書いたのでまとめて紹介です。自分以外の人が書いたモジュールをCPANに上げる業も今年結構やったのですがそれらには触れません。
App::RunCron
cronのエラー処理や通知処理を柔軟に行うことのできるラッパースクリプトruncronを提供します。コードはかなりcronlogから拝借したので安心のクオリティだと思います。
Cache::Redis
最近ゲーム開発ではあまりmemcachedを使わなくなったので、Cache::CacheなインターフェースでRedisにシリアライズデータをぶち込む用途で作りました。Redis::Fastを併用すれば、Cache::Memcahced::Fastには及びませんがそこそこ十分な速度が出ます。
Config::PL
config_do
という関数をExportします。.pl ファイルを設定ファイルとして扱う際の落とし穴を吸収してくれるモジュールです。地味に重宝します。
DBIx::CSVDumper
データベースに投げたクエリをそのままCSVとして保存したいというニーズがあったので作りました。作ったのは去年でそのままgithub止まりだったのですが、今年なんとなくCPANに上げました。
DBIx::FixtureLoader
ヘッダ付きCSV、YAML、JSONファイルから、データベースに対してデータを突っ込んでくれる君です。Test::mysqldとか開発サーバーにデータを突っ込んだりするときに便利です。
DBIx::Schema::DSL
SQLのDDLをDSLで書けるようにしたモジュールです。通常のSQL直書きに比べて、
- DRYに書ける
- 出力されるSQLのクオリティーが統一される
- Perlの定数をdefault値として扱ったりできる
などの利点があります。
内部的にはSQL::TranslatorのDSLインターフェースとも言えるので、GitDDLとの相性が良いのも特徴です。
GitDDL::Migrator
GitDDLの機能を拡張して、migrate履歴や切り戻し機能、実際のデータベースとの差分などを取得できるようにしたモジュールです。
Parse::Crontab
crontabのテキストをparseするモジュールです。
- そのcrontabにシンタックスの間違いがないか
- 指定しているコマンドスクリプトがちゃんと存在するか
- 狙った時間にコマンドが実行されるか
などのテストを書くときに便利です。
Plack::Middleware::UnicodePictogramFallback::TypeCast
Unicode絵文字をtypecast絵文字のimgタグ等にfallbackしてくれるPlack::Middlewareです。フォントの貧弱なAndroid機に対して使ったりできると思います。次のPlack::Middleware::Wootheeと組み合わせて使うことで、iPhoneで入力した絵文字をAndroidではimgタグで表示すると言った対応をPlack::Middlewareのみで行うことができるので結構イノベーティブです。
Plack::Middleware::Woothee
WootheeによるUserAgentのparseをPlack::Middlewareレベルでやってくれるモジュールです。
Puncheur