タグ

ブックマーク / blog.hide-k.net (7)

  • hide-k.net#blog: TTでDBICのhas_manyなメソッドを使う

    よくわからない表題ですが要は・・・ MyApp::Schema::TopicsとMyApp::Schema::Commentsが1:nの関係にあるとして package MyApp::Schema::Topics; use strict; __PACKAGE__->has_many('comments' => 'MyApp::Schema::Comments'); 1; こんなアクションで sub list : Local { my ( $self, $c ) = @_; my $topics = $c->model('Topics')->search({}); $c->stash->{topics} = $topics; $c->stash->{template} = 'list.tt'; } TTで素でやる場合 <html> <body> <ul> [% WHILE (topic =

    p_chopin
    p_chopin 2010/01/03
    has_many / many_to_manyなModelに、TTから条件句などを指定してアクセス。例えばこんな風に書ける→[% FOREACH vt = v.thumbs({h=90}{rows=5, order_by='time DESC'}) %]
  • hide-k.net#blog: DBIx::Class::ResultManagerのdeprecatedに備える

    DBIx::Class::ResultSetManager - scheduled for deletion in 09000 - search.cpan.org DBIx::Class::ResultSetManager never left experimental status and has now been DEPRECATED. This module will be deleted in 09000 so please migrate any and all code using it to explicit resultset classes using either __PACKAGE__->resultset_class(...) calls or by switching from using DBIx::Class::Schema->load_classes()

    p_chopin
    p_chopin 2009/05/05
    DBIx::Class::ResultSetを継承したクラスを作って、resultset_class()でロード。
  • local::libを使ったCatalyst5.7と5.8の比較テスト - hide-k.net#blog

    JPAセミナー#1でJay Shirley氏が絶賛していたlocal::libですが、その際に「異なるバージョンのモジュールをテストするのにも便利ですね」とか言っていた気がするので、早速やってみました。 お題は、Catalystで先日公開されたMoose版の5.8と旧5.7をベンチマーク比較してみます。 まずはCatalyst::Runtime 5.71001を$HOME/cat5.7にインストールします。 $ cd $ perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")' 次にCatalyst::Runtime 5.8(この時点での最新版は5.8001でした)を$HOME/cat5.8にインストールします。 $ cd $ perl -MCPAN

    p_chopin
    p_chopin 2009/05/05
    5.7のインストール『perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")'』
  • hide-k.net#blog: Plaggerアーカイブ

    p_chopin
    p_chopin 2009/03/01
    Filter::BreakEntriesToFeeds、Publish::MTに手を入れる
  • hide-k.net#blog: MooseとClass::MOPでメタプログラミング始めた

    今、超熱いMoose始めたよ。 で、Moose理解するにはClass::MOP理解しなきゃいけなくて、Class::MOP理解するにはMOP理解しなきゃいけないので、ircでえろい人たちに色々教わったのでメモ。 メタプログラミング メタプログラミング - Wikipedia ロジックを直接コーディングするのではなく、あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法 んで、これを実現するために必要なのがメタクラスとMOP。 MOP(メタオブジェクトプロトコル) メタクラスを通してオブジェクトシステムへアクセスするAPI メタクラス クラスの振る舞いを定義したクラスでイントロスペクション(introspection)とインターセッション(itercession)を備える イントロスペクション オブジェクトの属性を得る能力 ex) 何のクラスを継承してい

  • hide-k.net#blog: Catalystでマルチバイトを取り扱うときのまとめ

    #前に社内wikiに書いておいたのを公開してみるテスト。 Catalystでマルチバイトを扱う機会があるのは主に ユーザーがフォームで入力する値 ($c->req->param()) データベースからの入出力 (DBIx::Class) それ以外の文字列の評価 View::TTによる出力の生成 FillInFormによるフォームの埋め込み HTTPレスポンス です。 ここでは以下の条件でまとめてみました。 文字コードはUTF8に統一 データベースにはmysqlを使用 下準備 テンプレート、perlのコードは全てUTF8で書きます。 mysqlの文字コードの指定は/etc/my.cnfに [mysqld] default-character-set = utf8 skip-character-set-client-handshake [mysql] default-character-set

    p_chopin
    p_chopin 2007/09/10
    UTF8フラグ立てたり。
  • hide-k.net#blog: perlで機種依存文字を取り扱う

    「D-5 出張版:機種依存文字入りのShiftJISを扱う」を読んで大変タイムリーだったので実験して見ました。 はてぶのコメントでmiyagawaさんが decode("cp932", $buf) でいい気が とおっしゃられているので こんなんで実験してみました。 JISやEUCを取り扱うのでEncode::Unicode::Japanseを使って見ました。 取り扱うtext.txtは機種依存文字や半角カタカナを含んだこんなファイル。 #!/usr/bin/perl use strict; use warnings; use Encode::Unicode::Japanese; use Encode qw/encode decode/; _encode (qw/text.txt shift_jis sjis-utf8.txt utf8/); _encode (qw/text.txt shi

  • 1