Hatena::Groupcatalyst

masaki@catalyst RSSフィード

Fork me on GitHub
|

2008-10-29

Controller::Resources を他の Controller と併用する

| 20:45 | Controller::Resources を他の Controller と併用する - masaki@catalyst を含むブックマーク はてなブックマーク - Controller::Resources を他の Controller と併用する - masaki@catalyst Controller::Resources を他の Controller と併用する - masaki@catalyst のブックマークコメント

[僕] CC::Resources と CC::RequestToken を一緒に使う

まだ CodeRepos の trunk に入れただけだけど,多分対応したはず.

(追記)CPAN にあがりました

(さらに追記)Catalyst 5.8 系では軒並み test こけてるっぽい

今までは Resources で足した attribute と元から付いてる attribute が共存できないようになっていたのが原因だったようで.

これで

package MyApp::Controller::Foo;
use base qw(Catalyst::Controller::Resources Catalyst::Controller::RequestToken);

sub list :CreateToken {}

と書くと,C::C::RequestToken の独自 ActionClass を使いつつ,ルーティングは C::C::Resources に従うようになるはず.

ただこの場合

package MyApp::Controller::Foo;

__PACKAGE__->config(
    session_name => '_token',
    request_name => '_token',
);

とか明示的に指定しないとダメな感じ.C::C::RequestToken 内の __PACKAGE__->config が効いてない.

jorgejorge2012/07/21 17:09Great post with lots of imorptant stuff.

ologfllwhkologfllwhk2012/07/24 00:351lrUZV <a href="http://fkswxfseslyp.com/">fkswxfseslyp</a>

xsxpkicxtjxsxpkicxtj2012/07/24 05:22TTkiIc , [url=http://nqgfynlobhva.com/]nqgfynlobhva[/url], [link=http://pngcfbhfzrmg.com/]pngcfbhfzrmg[/link], http://uvbvzfugibls.com/

トラックバック - http://catalyst.g.hatena.ne.jp/ikasam_a/20081029

2008-08-13

Log の Dump

| 22:13 | Log の Dump - masaki@catalyst を含むブックマーク はてなブックマーク - Log の Dump - masaki@catalyst Log の Dump - masaki@catalyst のブックマークコメント

Catalyst::Logを侵蝕してるEvilな実装ということで削除されちゃってるみたいね。

最近気が付いたんだけどCatalyst::Plugin::Dumperってば - Unknown::Programming

自分も昔は使ってたけど,中身が消えてからは

$c->log->_dump

を使っております.これ Undocument なので推奨はしません.

トラックバック - http://catalyst.g.hatena.ne.jp/ikasam_a/20080813

2008-07-16

sreg とか extension とか

| 21:58 | sreg とか extension とか - masaki@catalyst を含むブックマーク はてなブックマーク - sreg とか extension とか - masaki@catalyst sreg とか extension とか - masaki@catalyst のブックマークコメント

coderepos の私家版 C::Auth::Cred::OpenID に手を入れてみた.

http://coderepos.org/share/changeset/15895

やったこと

  • ZIGOROuさんの記事を参考に,set_extension_args できるようにした
  • sreg.nickname があるときに VerifiedIdentity の display の値を上書きしてみた

やってないこと

  • テスト(ぉ
  • CPAN 版へのパッチとフィードバック

Catalyst::View::Templated の patch

| 21:18 | Catalyst::View::Templated の patch - masaki@catalyst を含むブックマーク はてなブックマーク - Catalyst::View::Templated の patch - masaki@catalyst Catalyst::View::Templated の patch - masaki@catalyst のブックマークコメント

jrockway からメールが来てた.Catalyst::View::Templated を使う前に - masaki@catalyst - Catalystグループで言っていた patch を反映してくれたとのこと.

http://git.jrock.us/?p=Catalyst-View-Templated.git;a=summary

そのうち version 0.03 がリリースされるかもしれない.

jrockway++

トラックバック - http://catalyst.g.hatena.ne.jp/ikasam_a/20080716

2008-07-14

Catalyst-Devel-1.08

| 08:06 | Catalyst-Devel-1.08 - masaki@catalyst を含むブックマーク はてなブックマーク - Catalyst-Devel-1.08 - masaki@catalyst Catalyst-Devel-1.08 - masaki@catalyst のブックマークコメント

リリースされてた.

@@ -618,7 +618,9 @@
 #                 directory
 
 use parent qw/Catalyst/;
-
+use Catalyst qw/-Debug
+                ConfigLoader
+                Static::Simple/;
 our $VERSION = '0.01';
 
 # Configure the application. 
@@ -633,7 +635,7 @@
 __PACKAGE__->config( name => '[% name %]' );
 
 # Start the application
-__PACKAGE__->setup(qw/-Debug ConfigLoader Static::Simple/);
+__PACKAGE__->setup();
 
 
 =head1 NAME

(Changes では 1.09 になってるけど)

use Catalyst が復活した.これしないと setup_home() が呼ばれないので __PACKAGE__->path_to が使えなくて困る.よかった.

tomyherotomyhero2008/07/14 12:35__PACKAGE__->path_to!

僕も困ってた。

トラックバック - http://catalyst.g.hatena.ne.jp/ikasam_a/20080714

2008-06-26

Catalyst::View::Templated を今度こそ使う

| 10:31 | Catalyst::View::Templated を今度こそ使う - masaki@catalyst を含むブックマーク はてなブックマーク - Catalyst::View::Templated を今度こそ使う - masaki@catalyst Catalyst::View::Templated を今度こそ使う - masaki@catalyst のブックマークコメント

概要内部実装と見てきたので,いよいよこれを使って View を書いてみた話.

使う側は基本的に new() と _render() を実装すればいい.そんな感じで書いてみたのがこれ.coderepos://lang/perl/Catalyst-View-Tenjin

以下簡単に.

sub new {
    my ($class, $c, $args) = @_;

    # C::V::Templated doesn't use __PACKAGE__->config
    my $self = $class->next::method(
        $c, $class->merge_config_hashes($class->config, $args)
    );

__PACKAGE__->config を使えるようにするために merge_config_hashes してから next::method 呼び出して

    $self->{TEMPLATE_EXTENSION} ||= '.plhtml';

設定項目にデフォルト値を代入して

    my $config = { path => $self->{INCLUDE_PATH} };
    for my $key (qw( LAYOUT PREPROCESS )) {
        $config->{lc $key} = $self->{$key} if exists $self->{$key};
    }
    $config->{cache} = exists $self->{CACHE} ? $self->{CACHE} : 0;
    $self->_template(Tenjin::Engine->new($config));

    return $self;
}

Tenjin::Engine に渡すオプションを組み立てて engine を作っておく

sub _render {
    my ($self, $template, $stash, $args) = @_;

    local $Tenjin::USE_STRICT = 1;
    return $self->_template->render($template, $stash);
}

_render() は engine にレンダリングさせるだけ

ね,簡単でしょ?

トラックバック - http://catalyst.g.hatena.ne.jp/ikasam_a/20080626
|