From 774083438c0c7e6b0e06b098d69e8076f6eac9e9 Mon Sep 17 00:00:00 2001 From: anekos Date: Sun, 21 Dec 2008 07:53:15 +0000 Subject: Fix typo. Add around. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27151 d0d07461-0603-4401-acd4-de1884942a52 --- _libly.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/_libly.js b/_libly.js index deab57e..2db2756 100644 --- a/_libly.js +++ b/_libly.js @@ -2,10 +2,10 @@ var PLUGIN_INFO = libly(filename _libly.js) - vimperator plugins library? + Vimperator plugins library? 適当なライブラリっぽいものたち。 suVene - 0.1.12 + 0.1.13 1.2 2.0pre http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/_libly.js @@ -26,6 +26,14 @@ extend(dst, src): オブジェクトを拡張します。 A(iterable): オブジェクトを配列にします。 +around(obj, name, func): + obj がもつ name 関数を、func に置き換えます。 + func は + function (next, args) {...} + という形で呼ばれます。 + next はオリジナルの関数を呼び出すための関数、 + args はオリジナルの引数列です。 + next には引数を渡す必要はありません。 bind(obj, func): func に obj を bind します。 func内からは this で obj が参照できるようになります。 @@ -36,7 +44,7 @@ evalJson(str, toRemove): str を decode します。 toRemove が true の場合、文字列の前後を1文字削除します。 "(key:value)" 形式の場合などに true を指定して下さい。 -deteFormat(dtm, fmt): +dateFormat(dtm, fmt): Date型インスタンスを、指定されたフォーマットで文字列に変換します。 fmt を省略した場合、"%y/%M/%d %h:%m:%s" となります。 @@ -124,6 +132,14 @@ libly.$U = {//{{{ } return ret; }, + around: function around (obj, name, func) { + let next = obj[name]; + let current = obj[name] = function () { + let self = this, args = arguments; + return func.call(self, function () next.apply(self, args), args); + }; + return [next, current]; + }, bind: function(obj, func) { return function() { return func.apply(obj, arguments); -- cgit v1.2.3