CGI::Application::Plugin::DispatchRequestMethod 作ってみた # 昨日 の続き。
CGI::Application::Plugin::AutoRunmode 、CGI::Application::Plugin::ActionDispatch を参考に書いてみた。他にもいろいろ参考にしてるので、コピペ祭りの様相
package CGI::Application::Plugin::DispatchRequestMethod; use strict; use warnings; use base qw(Exporter); use Class::Inspector; sub import { my $caller = scalar(caller); $caller->add_callback('prerun', ?&_prerun_callback_test); goto &Exporter::import; } sub _prerun_callback_test { my $self = shift; my $class = ref $self || $self; # initialize runmode my %runmodes = $self->run_modes(); my $request_method = uc($self->query->request_method); for my $method_name ( map {${$_}[2]} @{Class::Inspector->methods($class, 'expanded','public') || [[]]} ) { next if exists $runmodes{$method_name}; if ( ( $method_name =~ /^post_dispatch_(?w+)$/ and $request_method eq 'POST' ) or ( $method_name =~ /^put_dispatch_(?w+)$/ and $request_method eq 'PUT' ) or ( $method_name =~ /^delete_dispatch_(?w+)$/ and $request_method eq 'DELETE' ) or ( $method_name =~ /^get_dispatch_(?w+)$/ ) ) { $self->run_modes( $1, $method_name); } } } 1; 使い方は大体こんな感じ。
...
CGI::Application で、REQUEST_METHOD で dispatch したい # 今日は今さらなネタばかりなんだが、最近 REST が気になる。で、CGI::Application で、REQUEST_METHOD に応じて AutoDispatch して欲しいのだが、 CGI::Application::Dispatch にはそういう機能はないっぽい。
...
Test::WWW::Mechanize # まぁ、だまされたと思って使ってみるがよろし。つうか、今さらですねごめんなさい。
t/01-dummy.t
use Test::More 'no_plan'; BEGIN { use_ok('Test::WWW::Mechanize') or exit; } my $mech = Test::WWW::Mechanize->new(); my $page = 'http://haro.jp/path/to/app.cgi'; $mech->get_ok($page,'GET app.cgi'); $mech->title_is('PageTitle', 'app.cgi title is PageTitle'); で、
prove -v t/01-dummy.t とかする。結構依存関係あるが、インストールは何回もするわけじゃないし。
しょーこりもなくカバン # もともとカバンスキーなわけだが、また買ってしまったよ。チャリンコ乗り始めて以来、手持ちのカバンでは満たせない要求が多いのだ(言い訳)。ここ一年くらいの購入履歴を見ると。。。
...
のんびりポタポタ # なんか晴れてるなぁ。。。あ、曇ってきたなぁ。。。うーむ。。。まぁいいや、でかけよう。
とりあえず箕面方面へ。高校のあたりの坂、前は 42×23で登ってたんだが、今日は42×20で普通に登れた。42×17で座ったまま登れるようになったらシングル検討開始。検討期間はきっと長いはずなので、その間に 42×15で登れるようなる。。。だろう、きっと。
...
TL というフレームワーク # http://tripletail.jp/ ふむ。日本人の日本人による日本人のためのフレームワークという雰囲気だな。つうか、今日公開ですか。後でじっくり見てみよう。
HikiDoc を使った WEB アプリケーション (10) # そろそろ記事の編集画面作らないといけないんだが(でないと自分で使えない)
ということで、作った。最低限の機能はそろったので、次は整理・再構成。
HikiDoc を使った WEB アプリケーション (9) # そろそろ記事の編集画面作らないといけないんだが(でないと自分で使えない)、その前に思いついたのでメモ。
画像などのファイル添付機能は実装しない。flickr 等の Plugin を作って、画像表示はそれで対応することにする。なぜかというと、画像を添付するとその画像を管理したくなるわけだが、今作ろうとしているアプリの主役は文章なので、それ以外の機能は肥大化させたくない。画像管理するアプリが必要なら別途用意すればいいわけで。
...
洗車 # 朝から雨が降ったりやんだり晴れたり曇ったりあやしい天気だったが、自転車に乗りたかったのでプラプラ。帰ってきたらスカッと晴れたので、ひさびさに洗車(いつもは乾拭き)。
...
DA21mm 試し中 〜花に寄ってみる〜 # いつもの服部緑地植物園にて。広角=寄れるってことで、花に寄ってみるテスト。ついでに、絞り開放でのボケ具合も見てみる。
...