[#14922] alias $gvar — Koji Arai <JCA02266@...>

新井です。

19 messages 2001/10/14

[#15006] Re: eval.c (rb_stack_check): prohibit recursive raising error — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2001/10/26
[#15008] Re: eval.c (rb_stack_check): prohibit recursive raising error — Shugo Maeda <shugo@...> 2001/10/26

前田です。

[ruby-dev:14957] Re: alias module_function (Re: alias $gvar)

From: nobu.nakada@...
Date: 2001-10-17 15:50:03 UTC
List: ruby-dev #14957
なかだです。

At Thu, 18 Oct 2001 00:09:20 +0900,
Koji Arai <JCA02266@nifty.ne.jp> wrote:
> | module_function(name ... )
> |     nameで指定されたメソッドをモジュール関数にします。モ
> |     ジュール関数とは通常のメソッドであると同時にモジュール
> |     (またはクラス)の特異メソッドでもあるようなメソッドです。
> 
> では、モジュール関数がメソッドの特性の1つであるかのように認
> 識され(間違いではないけど)、モジュール関数のエイリアスはモ
> ジュール関数であると、思い込んでも不思議はないだろうというこ
> とです。

 たしかにそう期待しそうな文章ですね。

> 根本的な解決はやっぱりマニュアルの修正かなあ。alias のところ
> で触れるか。落し穴にまわすか。。

 module_functionのフラグを持たせて、aliasはそれを見てmodule側
が変更されていなければ、ということも考えられますが、はたしてそ
こまですべきことかどうか。

> 以前書いたスクリプトを見たところ、以下のように逃げてました。
> 
>   module Foo
>     def foo
>     end
>     alias :bar :foo
>     module_function :bar, :foo
>  end

 これでいいんじゃないでしょうか。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread