TransFreeBSDの日記 このページをアンテナに追加 RSSフィード

2006-11-24

[]CVS HEADでrecentcalendarプラグインが動かない CVS HEADでrecentcalendarプラグインが動かない - TransFreeBSDの日記 を含むブックマーク

ローカル環境でもエラーが出ていたのにチェックせずにサーバを更新してしまった。

Software Error: Can't call method "parse" on unblessed reference at plugin/core/Paragraph.pm line 50.

だそうな。該当箇所は

        # ちょっと裏技
        $self->{parser}->{no_partedit} = 1;
        if($level==1){
                $self->{parser}->parse("!$para\n");
        } elsif($level==2){
                $self->{parser}->parse("!!$para\n");
        } elsif($level==3){
                $self->{parser}->parse("!!!$para\n");
        }
        $self->{parser}->{no_partedit} = 0;

ってかんじでメンバ変数初期化されていないっぽい。つか、どこでparserを手に入れてるのかわかんない。前からこんなだったっけ?なんとなくincludeプラグインとかの裏技周りの変更が怪しい気もするけど。ってことで良くわかんないので、その辺りの変更履歴を漁る。

その前に寝る。

KGKG2006/11/26 00:28Wiki.pm の process_plugin 内で $parser を渡すところに制限がかかりましたので、プラグイン内で parser を使えるのが include と help だけになってしまいました。この制限を外せば使えるようになると思います。

TransFreeBSDTransFreeBSD2006/11/26 13:17あー、ソース読んでないのがバレバレだ(笑)
coreプラグインなので変更してコミットしておきます。
コメントありがとうございました。

KGKG2006/11/27 12:19$parser_including_plugin{$name}って?(w

KGKG2006/11/27 12:21途中で投稿してしまった(笑)。$self->{parser_including_plugin}->{$name} とかの方がよさそう。

KGKG2006/11/27 12:25というか、個人的には制限なんて無い方が良いのだが・・・竹添氏の意向がそうでないようなので制限が入るのは仕方が無い。拙作プラグインの関係上、個人仕様では制限なしにせざるを得ないのだが・・・。

TransFreeBSDTransFreeBSD2006/11/27 20:55一応バグフィクス扱いで、paragraphプラグインを加えるだけだけど、ただ、ifにズラズラ並べるのはあれなので、ハッシュ変数で判定という流れです。
元が固定値なので、ハッシュ変数を公開するのはとりあえず止めました。いまの所は定数扱いで、今後は要相談ってところですか。
コメントに裏技とあるだけあって、竹添さんとしては、出来れば渡したくないけどしかたなく、というところなのでしょう。
#少しパーサの方も見直した方が良いかも

トラックバック - http://freebsd.g.hatena.ne.jp/TransFreeBSD/20061124