[#37959] [Bug:trunk] I can modify literals — Yusuke ENDOH <mame@...>

遠藤です。

13 messages 2009/02/10

[#38005] Is URI.decode() broken? — MOROHASHI Kyosuke <moronatural@...>

もろはしです。いつもお世話になっております。

39 messages 2009/02/14
[#38006] Re: Is URI.decode() broken? — Nobuyoshi Nakada <nobu@...> 2009/02/14

なかだです。

[#38009] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/02/14

成瀬です、

[#38016] Re: Is URI.decode() broken? — Fujioka <fuj@...> 2009/02/15

xibbarこと藤岡です。

[#38017] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/02/15

成瀬です。

[#38040] Re: Is URI.decode() broken? — akira yamada / やまだあきら <akira@...> 2009/02/17

NARUSE, Yui さんは書きました:

[#38124] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/03/03

成瀬です。

[#39214] Re: Is URI.decode() broken? — akira yamada / やまだあきら <akira@...> 2009/09/02

(2009年03月03日 22:45), NARUSE, Yui さんは書きました:

[#39218] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/09/02

成瀬です。

[#39236] Re: Is URI.decode() broken? — Tanaka Akira <akr@...> 2009/09/05

In article <4A9E44DD.6050706@airemix.jp>,

[#39242] Re: Is URI.decode() broken? — KOSAKI Motohiro <kosaki.motohiro@...> 2009/09/07

小崎@思いつきを適当に書いてみるテスト

[#39246] Re: Is URI.decode() broken? — Tanaka Akira <akr@...> 2009/09/07

In article <20090907091830.2C7A.A69D9226@jp.fujitsu.com>,

[#38096] 多重代入やメソッド引数の展開でto_aが呼ばれます — nagachika <nagachika00@...>

nagachika と申します。

10 messages 2009/02/26

[#38098] ブロック引数と括弧・引数なしsuper — Shugo Maeda <shugo@...>

前田です。

12 messages 2009/02/27

[ruby-dev:37988] Re: proposal: Module#method_adding

From: Hidetoshi NAGAI <nagai@...>
Date: 2009-02-13 02:43:56 UTC
List: ruby-dev #37988
永井@知能.九工大です.

From: SASADA Koichi <ko1@atdot.net>
Subject: [ruby-dev:37982] Re: proposal: Module#method_adding
Date: Fri, 13 Feb 2009 05:52:57 +0900
Message-ID: <49948C70.7000403@atdot.net>
> >  今,asakusa.rb で酒を飲んでたんですが,Module#method_adding とか,そう
> > いうメソッドというのはどうでしょうか. メソッドが定義される直前に呼ばれ
> > るメソッドです.
> > 
> > やりたいこと:
> >  例えば,foo というメソッドのオーバーライドをしたときに,old_foo のよう
> > な古いメソッドの alias を自動的に作るにはどうすれば,という話になりまし
> > た.Module#method_added を使うとどうだろう,と思ったのですが,これはすで
> > にメソッドを上書きした後でよばれるようです.
> > 
> >  ということで,メソッドを定義する直前にフックするためのメソッドとして
> > Module#method_adding というのを新設するのはどうだろう,という案がでまし
> > た.すでに,そういうことをする方法があればいいんですが,なければ,一つ検
> > 討ご検討いただけないでしょうか.
> > 
> 
>  なんとなく実装してみました.ちなみに,method_added の rdoc がなかった
> ので,singleton_method_added をコピーして適当に書きました.
> 
>  気づいた点は2点.
> 
> * ...ed 系のフックメソッドに,...ing 系を付け加えたくなってくる
>   結構きりがない.hook 関数全般を set_trace_func みたいにまとめる?
> 
> * singleton_*ed があるメソッドは *ed の rdoc がない.

method_added を method_added(symbol, pre_method_obj, new_method_obj) 
とするという考えはダメですかね?
そうすれば,define_method で旧い定義を別のメソッド名で定義したり,
適当に wrap して新旧織りまぜて呼び出すようにしたりとかが
自由に実装できそうに思います.
別名定義は自力でやるので,衝突チェックもその際にできるでしょう.

メソッドを書き換える前に呼ばれるか後に呼ばれるべきかによって,
pre_method_obj と new_method_obj とのいずれか一方は不要かもしれません.
Thread との絡みを考えると,メソッドを置き換えられてしまう前に
呼ばれるものが何かは欲しい気がしますね.
-- 
永井 秀利  (nagai@ai.kyutech.ac.jp)
九州工業大学 大学院情報工学研究院 知能情報工学研究系

In This Thread