Mojolicious::Plugin::SessionStore を作ってみました
hayajo/Mojolicious-Plugin-SessionStore · GitHub
shipitしました。(2013-05-05)
これなに?
Mojoliciousのセッションストアはcookieです。普通に使うぶんにはcookieで十分なのですが、やんごとなき理由でセッションストアをファイルやデータベース、KVSなどに変更したい場合がありますよね。
そんなときにお手軽にセッションストアを変更できるプラグインです。
use Mojolicious::Lite;
use Plack::Session::Store::File;
plugin SessionStore => Plack::Session::Store::File->new;
...
似たようなものに Mojolicious::Plugin::Session があります。こちらはセッションオブジェクトを Mojolicious::Controller#stash を経由して使います。既存の Mojolicious::Controller#session や Mojolicious::Controller#flash を利用できないので少々使い勝手が悪いかなぁと思って作った次第です。
利用できるストアオブジェクト
Plack::Session::Store と同様のインターフェースを実装したオブジェクトを利用できます。
お好きなものを使ってください。
TIPS
ドキュメントには書いてないのですが、このプラグインを使うと Mojolicious::Controller@session_options が生えます。
Plack::Request@session_options と同じような使い方ができるので、セッションキーの確認やSession Fixation対策を行いたい場合にご利用ください。
my $session_id = $c->session_options->{id}; # セッションキーの取得
…
$c->session_options->{change_id}++; # 古いセッションを破棄し、新しいセッションを発行
というわけで
しばらく使って問題なさそうだったらshipitしようかと。
不具合がございましたらIssueやPullreqください。
Mojolicious::Plugin::AccessControlをshipitしました
shipitしました。
Mojolicious::Plugin::AccessControl - Access control - metacpan.org
これなに?
Mojoliciousでルートごとにアクセス制御を定義できるモジュールです。Apacheのmod_accessみたいな感じ。
注意点
アクセス制御の対象はMojolicious::Routes::Routeオブジェクトで、Mojolicious::Routes::Route#overを使っているだけなので、denyされる場合は403ではなく404が返ります。
また、Mojolicious::Staticで提供されるような静的ファイルは対象外となります。
こちらも参考に。
レスポンスをうまく制御できる方法がありましたらpullreqください。
- 4/8 22:29 加筆・修正
そういえば「shipitしました」ってはじめて書いたかも。アウトプットしてかなきゃ。
NDS#31 に参加してきました #nds31
長岡 IT開発者 勉強会(NDS) 第31回勉強会 に参加してきました。
開催一週間前の告知にもかかわらず参加者が10人(主催除く)も集まったのは、NDSのブランド力というか、主催の@civicさんの人徳というか。さすがです。
おかげで@civicさんのMacにperlの開発環境を構築するという目論見は達成出来ませんでした。残念。
発表
Perlの開発環境の構築についてお話させていただきました。なにげにNDSでの発表は初めて。
「バババっと環境を構築しよう」といった感じの内容です。
それぞれのツールの詳しい解説や注意点、他のツールの紹介は下記のページに詳しく解説されています。 (まだ書きかけとのことです)
1. Perl環境の設定 : Practical Modern Perl (仮)
Perlでの開発に興味を持たれた方は一読することをおすすめします。導入で小石につまずくのを避けることができるでしょう。
PerlのIDE
発表の最後に「IDEはありますか?」と質問があり、「ないと思ったほうが良いでしょう」と答えたのですが、ご紹介頂きました。
この発表って @hayajo さん? RT @civic: Q. Perl使うにあたって、IDEはあるのか? A. ないと思ったほうがいい #nds31
— Hideaki Ohnoさん (@hide_o_55) 2013年4月6日
@hide_o_55 @civic はい。個人的な回答ですが、斧が飛んできそうな感じですか?
— アメイジング・バッグマンさん (@hayajo) 2013年4月6日
@hayajo Padreは昔はおもちゃみたいだったけど結構使えるようになってきてるし、EPICはEclipseに慣れてればそこそこ使えるとおもいますよ
— Hideaki Ohnoさん (@hide_o_55) 2013年4月6日
@hide_o_55 Padreは知らなかったです。EPICは数年前に使ってみたのですが結局Emacsに戻ったので、その後はわかりませんでした。両方試してみます!!
— アメイジング・バッグマンさん (@hayajo) 2013年4月6日
Komodo Editが出てこない様子を眺めてる。
— nekoさん (@techno_neko) 2013年4月6日
Komodoはノータッチです。
— アメイジング・バッグマンさん (@hayajo) 2013年4月6日
有料でした...よね?たしか。
— アメイジング・バッグマンさん (@hayajo) 2013年4月6日
Komodo IDEとKomodo Editがあっt(ry #詳しくないのでゴメンなさい
— nekoさん (@techno_neko) 2013年4月6日
Padreはまったく知らなく、EPICは数年前の記憶しかなく、有料だと思っていたKomodoはIDEの方で、Editは無料でした。
このへんの動向はまったく追ってなくて「VimかEmacsっしょ」と思考停止していたのですが、ちょっと調べてみようと思います。
@hide_o_55さん、@techno_nekoさん、ご指摘ありがとうございました。
Rubyのおすすめ書籍
@neko_gata_sさんと@kasacchifulさんの発表でRubyの書籍が数冊紹介されていたのですが、
そうなので読んでみようようと思います。
あと
Railsでひと通りのお作法を学べる
だそうなので、積極的にRailsさわってこう。正直学習コストが高そうで避けてた。
WebMarker 1.5.0 のパッチ
なんか残念なぐらいに WebMarker が動かなかったのでちょっろっと改修して使っていたのですが、先人が改修していた記事をみつけました。
すばらしいです。(でもボクの改修もだいたい一緒だったんだょ。ホントだょ。)
併せてキーボードショートカット周りやオプション変更時の反映、flattrリンクの有効化あたりの細々としたところも改修したので、使っている方は試してみてください。
下記パッチ適用済みのパッケージはこちら(WebMarker-1.5.0_2.crx)
Chromeの拡張機能画面からドラッグ&ドロップでインストールしてください。
Enjoy!
quickrunでcarton配下のperlスクリプトを実行
こんな感じ?
開いてるファイルから遡って .carton ディレクトリを探し、カレントディレクトリを変更して carton exec を実行。
screen のハードコピーをメールで送信
screenのハードコピーをメールで送ります。 送信先のメールアドレスは環境変数SCREEN_HARDCOPY_TOを定義して下さい。
exec 知らなかった。
まだまだ tmux には乗り換えませんよ。