タグ

ブックマーク / craftworks.hatenadiary.org (6)

  • Test::mysqld を別ウィンドウで立ち上げたら開発時の prove が快適過ぎる件 - Craftworks Tech Blog - Branch

    id:xaicron 氏が紹介なされていました make test で Test::mysqld を永続化させる方法 を早速導入していたのですが、make test は速くなって便利なのですが、prove で 1 つずつテストをするときは、相変わらず mysqld を毎回、起動・終了するので時間がかかって開発時のストレスになります。 そこで、開発時には別ウィンドウで mysqld を立ち上げておいて、そこに接続しに行くようにすれば大分快適になると思い、実装してみました。 #!/usr/bin/env perl use strict; use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; use File::Spec; use JSON; use Test::MyApp::mysqld; my $tempfile = File:

    Test::mysqld を別ウィンドウで立ち上げたら開発時の prove が快適過ぎる件 - Craftworks Tech Blog - Branch
  • Plack::Test で HTTP クライアントのテストを書く方法 - Craftworks Tech Blog - Branch

    先日、WWW::Curl をラッピングした HTTP クライアントなモジュールを書いたのですが、テスト用に HTTP サーバーを用意しないといけないと思いつつ、他の HTTP クライアントがどのようにテストをしているか調べてみたところ、WWW::Curl は、 my $url = $ENV{CURL_TEST_URL} || "http://www.google.com"; などとしていて、LWP は Net::HTTPServer を使っているようでした。 ネットワークが繋がっていないとテストが出来ないのもなんですし、Net::HTTPServer 使ってサーバー書くのも面倒臭そうなので、来の用途とは違いますが、シンプルに書けそうな Plack::Test で書いてみることにしました。 use strict; use warnings; use Test::More; use Plac

    Plack::Test で HTTP クライアントのテストを書く方法 - Craftworks Tech Blog - Branch
  • Catalyst で setup にかかった時間を表示する - Craftworks Tech Blog - Branch

    Catalyst はデフォルトでリクエスト毎の処理時間をログ出力してくれますが、setup() 時の処理時間は表示してくれません。チューニングの目安として見たいので実装してみました。 Upgrading to Catalyst 5.80 で紹介されている、setup の hook point を使います。 package MyApp; use Moose; use Catalyst::Runtime 5.80; use Catalyst; use Time::HiRes; extends 'Catalyst'; our $StartedOn; BEGIN { $StartedOn = Time::HiRes::time; } after setup_finalize => sub { my $c = shift; $c->log->info(sprintf 'Setup took %0.6

    Catalyst で setup にかかった時間を表示する - Craftworks Tech Blog - Branch
  • Catalyst を daemontools で監視しつつ lighttpd の外部 FastCGI で走らせる方法とそのメリット - Craftworks Tech Blog - Branch

    JPA セミナーの時に jshery 氏も勧めていましたし、近頃 Geek の話題で目立つようになってきた、Catalyst を mod_perl でなく、外部 FCGI として走らせる設定方法を紹介します。 Catalyst プロセスの起動管理は DJB 氏の daemontools による管理がお勧めです。プロセスが死んでも自動的に再起動してくれます。手動での再起動も楽です。screen からショートカットキー登録して Catalyst を再起動する方法も後ほど紹介します。 Catalyst の FastCGI 起動の設定 まずは daemontools の run スクリプトです。 run #!/bin/sh exec 2>&1 exec env - \ PATH='/bin:/usr/bin:/usr/local/bin:/var/www/www.example.com/scrip

    Catalyst を daemontools で監視しつつ lighttpd の外部 FastCGI で走らせる方法とそのメリット - Craftworks Tech Blog - Branch
  • 2009-04-22

    1. Plugin プラグインの使用を控える 間違った使用方法、実装方法で定義されていることが多い プラグインの使いどころ リクエストディスパッチのロジックを監視、変更する場合のみ リクエストパラメーターの変換、Catalyst のメソッド実行チェーンの変更を含む 当に使わない方向で Catalyst::Plugin::* の中にはそもそもプラグインとして実装されるべきでないものが多い コンテキストオブジェクト ($c) にメソッドを追加する実装がそもそも良くない手法 大半のプラグインはモデルとして実装されるべき それ以外はそもそも存在するべきがどうかさえ疑問 (eg.Catalyst::Plugin::Message) Catalyst::Plugin::Authentication はどうなの? とはいえ、例外はある 認証系とセッション系はプラグインで存在しなければならない意味がある

    2009-04-22
    ikasam_a
    ikasam_a 2009/04/24
  • JPA セミナー #1 (Session 2 Catalyst 改) - Craftworks Tech Blog - Branch

    1. Plugin プラグインの使用を控える 間違った使用方法、実装方法で定義されていることが多い プラグインの使いどころ リクエストディスパッチのロジックを監視、変更する場合のみ リクエストパラメーターの変換、Catalyst のメソッド実行チェーンの変更を含む 当に使わない方向で Catalyst::Plugin::* の中にはそもそもプラグインとして実装されるべきでないものが多い コンテキストオブジェクト ($c) にメソッドを追加する実装がそもそも良くない手法 大半のプラグインはモデルとして実装されるべき それ以外はそもそも存在するべきがどうかさえ疑問 (eg.Catalyst::Plugin::Message) Catalyst::Plugin::Authentication はどうなの? とはいえ、例外はある 認証系とセッション系はプラグインで存在しなければならない意味がある

    JPA セミナー #1 (Session 2 Catalyst 改) - Craftworks Tech Blog - Branch
  • 1