タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ttに関するhideokiのブックマーク (2)

  • TTの.item()の挙動について調べてみた

    naoyaさんが書いてるTTのこの問題。ちょっと調べてみた。 とりあえず.item() がどこなのかを探してみたら、2.15 あたりで Template::Stash で定義されていたのが2.19だと Template::VMethods にうつっているようですね。 で、ロジックをみてみる。 2.15 だと Template::Stash の $HASH_OPTS->{item} の CODEREF が .item() の実体なのですが、この CODEREF 内ではプライベート変数判定用の正規表現が入ってる $PRIVATE がちゃんと参照できるため、プライベート判定できます。 でも、2.19 だと Template::VMethods の hash_item() が .item() の実体になっていて、しかもその中での $PRIVATE が undef になってる(参照できない)ために

    hideoki
    hideoki 2007/08/30
    チャウダー
  • How to add virtual method on Template Toolkit

    Template Toolkitでvirtual methodを追加したいと思ったんですが、ドキュメントを読んでもどうも簡単なやり方が見付からない。仕方がないので最初に下記のようにやりました。 $Template::Stash::LIST_OPS->{ foo } = \&foo; こうしなけりゃならないのかな?他になにか方法あるのでしょうか…。 追記:はてブでハテナオヤさんが質問してましたが、このエントリで伝えたいことは、vmethodを追加する方法としては、上記の方法やdefine_methodを使うのが正当な方法なのかどうかということと、他の人はどう追加しているのかなという部分になります。 下記のようにインスタンス生成時に追加とかできればいいのに…。 Template->new(STASH => { LIST_OPS => { foo => \&foo } ); と思ったら、Temp

    hideoki
    hideoki 2005/12/12
    vmethod の定義の仕方。
  • 1