Perl

Amon2の$c->req->paramに値を入れる。 Amon2

Amon2の$c->req->paramに値を入れる。

なんとなく、 $c->req->param('key' => 'value'); こんな感じで入るかと思ったら、できなかったのでメモ。 で、 $c->req->parameters->set('key' => 'value'); これでいける。 parame…
Amon2::Setup::Flavor->write_fileで変数を使う。 Amon2

Amon2::Setup::Flavor->write_fileで変数を使う。

Amon2::Setup::Flavorのソース見た感じ、中身はXslateのようですが、tag_start,tag_endが設定されているようなので、下記のような感じで。 sub run { my $self = shift; $self->write_file('lib/<<P…
Amon2で$c->render()を自動で呼ぶようにしてみた。 Amon2

Amon2で$c->render()を自動で呼ぶようにしてみた。

以前書いた Amon2で$c->render()をwrapした$c->auto_render()を作ってみた(改) ですが、もう$c->auto_render()を毎回書くのがアレなんで、書かなくて良いようにしてみた。 add_triggerを駆使すれば行けるかと思ったんですが、タイミン…
Amon2で$c->stashを使う。 Amon2

Amon2で$c->stashを使う。

Amon2自体は、意図的にstashは作ってないようなんですが、ずっとCatalystを使ってたのでstashあった方が便利かなーと。 で、$c->stashを追加してみた。 sub stash { my $self = shift; unless ( $self->{stash} ) { $…
JavaScript::Minifierでjsをmin化しとく。 Cpan

JavaScript::Minifierでjsをmin化しとく。

jsにコメント書きまくった結果、ソースが無駄にでかくなってしまったので、少しでもファイルを軽くする為に。。 複数ファイルを繋げて1つのファイルにしつつ、コメントとか空白行を取り払う。 #!/usr/bin/perl use strict; use warnings; use Path::Class;…
FormValidator::Liteをwrapして使ってみる。 Cpan

FormValidator::Liteをwrapして使ってみる。

そのままでも充分使えそうですが、痒いところに手が届くようにしてみました。 ユーザーのプロフィールを入力するフォームをバリデートする感じで下記を書いてみました。 まずはerror_messageのymlを用意。 message: name.not_null: '' param: name: 名前 ag…
Perlで特定のpackageを動的にuseするやつ(Module::Find) Cpan

Perlで特定のpackageを動的にuseするやつ(Module::Find)

ちょっと前までは、Module::Recursive::Requireってやつを使ってたんですが、Amon2のサンプルを見てると、Module::Findの方がお手軽な感じだったんで、最近はそっち使ってます。 過去に書いたやつも見かけたら変更して行ってます。 use Module::Find; my…
Plack::Middleware::Profiler::NYTProfでプロファイリング。 Cpan

Plack::Middleware::Profiler::NYTProfでプロファイリング。

Amon2を使ってサービスでも作ろうかと色々やってみてるんですが、ページによって重かったりするので、どこが重い(時間がかかってる)のがちょいと調査。 my $app = builder { # ... 省略 ... enable 'Plack::Middleware::Profiler::NYTPr…
Amon2でModel作ってControllerから呼ぶ Amon2

Amon2でModel作ってControllerから呼ぶ

MVCが良いか悪いかは兎も角、、 ViewとControllerしかないので、Modelを作ってみます。 Amon2のサンプル的なやつだと、Controllerから直接dbを叩いてるようなのがよくあるんですけど、Controller肥大化を避ける意味でも。 (Catalystで言うところの、Cata…