Amon2 8月 3 2015Amon2(Plack)で複数の画像を同時に受け取る html5で複数ファイルを選択(input type=”file”で複数ファイル選択と形式を指定(html5))して、サーバーに送信されたファイルをサーバー側で受け取ってみます。 サーバーサイドはPerl(Amon2+Plack)です。 Plack::Request::Upload 普通にファイルを…
Amon2 3月 5 2015Perl(Amon2)で、Formに自動でエラーメッセージを埋め込みたい。 FormValidator::Liteとかでバリデートした結果でエラーがあった場合に、自動でエラーを埋め込むような感じにしたいなーと。 で、とりあえず書いてみたプラグインが下記。 package MyApp::Web::Plugin::HTML::FillInFormError; use stric…
Amon2 3月 4 2015plackアプリをsupervisorで永続化 supervisorのインストールやら設定等々は、前回のエントリー(supervisorをCentOS6.5にインストールしたメモ)に書いたとおりです。 今回は、アプリ毎の設定を。 directory=/home/web/MyApp command=bash -lc 'carton exec -- …
Amon2 1月 27 2015Xslateでtemplateファイルにアクセスする。 XslateのCookbookに書いてあったんですけど、slurp_templateをoverrideすると元のtemplateにアクセスできるようです。 Amon2でやるならこんな感じ。 とりあえずMyApp以下にXslate.pm(名前はなんでもいいけど)ってのを作って、Viewからはそいつを呼…
Amon2 1月 25 2015Amon2で404ページを変更する。 MyApp.pmに書いたものは、$c->で呼べるようになるんで、元々ある$c->res_404を上書きする感じで。 sub res_404 { my $self = shift; my $html = $self->create_view()->render('error.tx'); $…
Amon2 1月 17 2015Amon2で最後/(スラッシュ)ありなしを吸収してDispatchする時のメモ。 アプリじゃなくてNginxとかApacheでやってもいいんですけど、オレオレFlavorに入れとけばいいかなと。 use MyApp::Web::Dispatcher; get '/' => 'Root#index'; get '/hoge' => "Hoge#index&qu…
Amon2 12月 15 2014Amon2で実行時間を測定する。 自分の環境だと、$c->stash(Amon2で$c->stashを使う。)が使えるようになってるんで、そこにdispatch前の時間を保存して、dispatch後に差を見れば何秒かかったかわかる。 package MyApp::Web; use parent qw/MyApp Amon2::…
Amon2 11月 27 2014Amon2でコントローラー(Dispatcher)が動く前に処理を入れたい。 元となるソース(というか、修正するファイル)は、以前作成した(Amon2で$c->render()を自動で呼ぶようにしてみた。)のMyApp::Web 気分的には、Catalystのautoに近い挙動を目指す。 package MyApp::Web; # dispatcher use MyAp…
Amon2 11月 26 2014Amon2でMODE共用のconfigファイルを読み込んで使う。 Amon2は、configをdevelopmentとproductionの読み替えができるんで、DB接続周りとかの変更が可能なんですが、その他の部分で同じ内容がいくつかあって、いちいちconfigを全部変えるがめんどいので、共通な内容は別のconfigファイル(どのMODEでも読み込まれる共用ファイ…
Amon2 11月 8 2014Amon2でアップロードされたファイルを受け取る。 html側は、まぁ普通なんで簡単に。 <form action="/myapp/upload" method="post" enctype="multipart/form-data"> <input type="…
Amon2 11月 7 2014jQueryから送信($.ajax)した配列をAmon2(Perl)で受け取る。 jQueryからpostされた配列をAmon2で受け取ります。 ま、タイトルのまんまですね。 jsの方はざっくりですが、下記のような感じ。 var hoge = ; $.ajax({ type: "POST", url: "/myapp/test", data…
Amon2 10月 6 2014Amon2の$c->req->paramに値を入れる。 なんとなく、 $c->req->param('key' => 'value'); こんな感じで入るかと思ったら、できなかったのでメモ。 で、 $c->req->parameters->set('key' => 'value'); これでいける。 parame…
Amon2 8月 11 2014Amon2::Setup::Flavor->write_fileで変数を使う。 Amon2::Setup::Flavorのソース見た感じ、中身はXslateのようですが、tag_start,tag_endが設定されているようなので、下記のような感じで。 sub run { my $self = shift; $self->write_file('lib/<<P…
Amon2 8月 4 2014Amon2のDispatcher をカスタマイズしてCatalystライクなコントローラーを実装する 最近のWAFは、 get '/' => 'Foo#bar'; みたいなのをつらつらと書いていくのが主流みたいなんですが、コントローラに書いてある方が直観的だと思うのはCatalyst病に感染してるからでしょうか。 PerlのAttributeが微妙ってのもあって、CatalystライクなDis…
Amon2 8月 2 2014Amon2で、MyApp::Web::Plugin::FormValidator::Liteを作ってみた。 なるべくコントローラに書く部分を少なくしたいのです。。 WAFはAmon2使ってます。 設定周り まずは、configにバリデート内容を書いていきます。 +{ 'FormValidator::Lite' => +{ 'user' => { 'message' => { 'name.…