実用

 | 

2008-07-21

[]Tombloo Patch、はてなブックマークでタイトルを修正しないようにする、アスペクト


そもそもTomblooのバグのような気がするけど。

ハックしたりパッチしてもらえるのは、とてもうれしいです。

あと、なんか迷惑かけてるかんじがして申し訳ないす。


今のTomblooは、addAroundとaddBeforeがある。

addAroundは、とりあえずなんでもできる。

前も書いたけど、アスペクトでやりたいこととして以下があって、一通りできる。


  • 前処理
  • 呼び出しのキャンセル
  • 独自処理の置き換え
  • ターゲットオブジェクトの状態/メソッド名に合わせた処理の振り分け
  • 後処理
    • 返り値の変形
    • 返り値の利用

コードにすると、こんな形になる。


// ターゲット, メソッド名(ワイルドカード利用可/get系全部など)
addAround(HatenaBookmark, 'post', function(proceed, args, target, methodName){
  // 前処理

  // ターゲットの処理
  var result = proceed(args);
  
  // 後処理
  return result;
});

今回の要件の場合、以下みたいに書ける。


addAround(HatenaBookmark, 'post', function(proceed, args, target, methodName){
  // クロスポストを考慮し、psをそのまま改変しない
  var ps = args[0] = update({}, args[0]);
  delete ps.item;
  return proceed(args);
});


一応、コミットしておきました。

なんやこの、自分のコードにパッチしてコミットする感じ、なら本体直せみたいなふんいき。

トラックバック - http://d.hatena.ne.jp/brazil/20080721/1216579832
 |