SweetPotato::Plagger このページをアンテナに追加 RSSフィード

2009-03-26

expressionハックをEFTより前に行いたい 23:19 expressionハックをEFTより前に行いたい - SweetPotato::Plagger を含むブックマーク はてなブックマーク - expressionハックをEFTより前に行いたい - SweetPotato::Plagger expressionハックをEFTより前に行いたい - SweetPotato::Plagger のブックマークコメント

ある事情でエントリの内容を一旦空にしてからEFTで本文を取得したくなり*1,下記のようなYAMLを書いたら,EFTは成功しているのにエントリ本文は空のままという現象が起こった。

  - module: Filter::Rule
    rule:
      expression: $args->{entry}->body(undef); 1

  - module: Filter::EntryFullText

ざっくり言うと,Filter::Ruleおよびそのruleが実行されるsmartfeed.(entry|feed)フェーズは,EFTが実行されるupdate.entry.fixupフェーズよりも後であるため,このような現象が起こったようだ。

じゃあどうすればいいか。EFTのruleにexpressionハックを記述すればいい。これならEFT本体実行の直前にruleが実行される。

  - module: Filter::EntryFullText
    rule:
      expression: $args->{entry}->body(undef); 1

*1:念の為:handle_forceで解決できる事情ではない

トラックバック - http://plagger.g.hatena.ne.jp/SweetPotato/20090326