[#29736] [提案] Kernel#p をもっと便利に — "Yusuke ENDOH" <mame@...>

遠藤侑介と申します。

19 messages 2006/11/01

[#29765] merge with YARV — SASADA Koichi <ko1@...>

 ささだです。

16 messages 2006/11/03

[#29767] 1.8 proposal of RUBY_PATCHLEVEL — URABE Shyouhei <root@...>

-----BEGIN PGP SIGNED MESSAGE-----

52 messages 2006/11/04
[#29771] Re: 1.8 proposal of RUBY_PATCHLEVEL — Shugo Maeda <shugo@...> 2006/11/04

前田です。

[#29925] ruby -v — Urabe Shyouhei <shyouhei@...>

卜部です。

28 messages 2006/11/24

[#29964] 1.8, 1.9, svn化, などなどのまとめ — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

15 messages 2006/11/28

[#29970] BUG: Incorrect handling of Ignorecase matching (regex.c of 1.8.5) — "きむらこういち" <hogemuta@...>

木村です。

15 messages 2006/11/28

[ruby-dev:29857] Re: Module duplicate

From: SASADA Koichi <ko1@...>
Date: 2006-11-06 05:13:17 UTC
List: ruby-dev #29857
 ささだです。

Yukihiro Matsumoto wrote:
> |# Satherはコピーですし、superもないですからねえ。
> 
> まあ、そうですね。

 Module のメソッドでは super を無くすってのも現実的じゃないですよねぇ。

> |でも同じメソッドが二回呼ばれるのはどうなのかなあ。
> 
> 同じメソッドが呼ばれるケースはあまり多くないでしょう。

 実際にあったケースとして、RSS がありました。

require 'rss'
rss_version = '2.0'
version = "1.0"
encoding = "UTF-8"
standalone = false
rss = RSS::Rss.new(@rss_version, version, encoding, standalone)
p rss.class.ancestors

#=> [RSS::Rss, RSS::XMLStyleSheetMixin, RSS::RootElementMixin,
RSS::XMLStyleSheetMixin, RSS::RSS09, RSS::Element, RSS::Utils, Object,
Kernel, BasicObject]

で、XMLStyleSheetMixin#initialize とかが super してます。よくわかんない
けど動いてるので、問題はないのかもしれません。


 多分、怖いのは気づかない間に同じモジュールを include しちゃって、意図
せずに複数回呼び出してしまう、っていうことだと思います。が、ちゃんと気を
つけろってことなのかもしれません。

> となりますから、むしろ二度呼ばれるほうが自然に見えてきません
> か? 苦しいかなあ。

 自然かもしれません。他の言語の事例、対処なども、もしあれば見てみたいです。

> |強いていえば、ささださんの作業への影響が気になることくらいですが、
> |ささださんも決まってしまえばわりとどっちでもいいんでしょうか。
> 
> いや、継承ラインに同じモジュールが二度登場するのはかなり致命
> 的らしいですよ。この辺が私としても強く主張しにくいところ。

 実装に引きずられないのが Ruby の特徴だと思うので、こうするべき、という
結論になったら直します。ただ、「どっちでもいいけど(どっちがいいかよくわ
かんないけど)こっちのほうがいいかも?」とかだったら実装を気にして欲しい
なあと言う気がします。

-- 
// SASADA Koichi at atdot dot net


In This Thread