[#40164] Class内Classの定義と差分ベースモジュール — Nowake <nowake@...>

こんばんは、野分です。

12 messages 2004/11/03

[#40196] [ANN] RDtool-0.6.16 — MoonWolf <moonwolf@...>

MoonWolfです。

78 messages 2004/11/08
[#40197] Re: [ANN] RDtool-0.6.16 — MoonWolf <moonwolf@...> 2004/11/08

MoonWolfです。

[#40198] Re: [ANN] RDtool-0.6.16 — akira yamada / やまだあきら <akira@...> 2004/11/09

2004-11-09 (火) の 08:28 +0900 に MoonWolf さんは書きました:

[#40202] Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/09

MoonWolfです。

[#40204] Re: Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/09

MoonWolfです。

[#40206] Re: Ruby標準添付ライブラリのコードレビュー — Yukihiro Matsumoto <matz@...> 2004/11/09

まつもと ゆきひろです

[#40212] Re: Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/09

MoonWolfです。

[#40214] Re: Ruby標準添付ライブラリのコードレビュー — Yukihiro Matsumoto <matz@...> 2004/11/09

まつもと ゆきひろです

[#40225] Re: Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/09

MoonWolfです。

[#40227] Re: Ruby標準添付ライブラリのコードレビュー — Yukihiro Matsumoto <matz@...> 2004/11/09

まつもと ゆきひろです

[#40230] Re: Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/09

MoonWolfです。

[#40232] Re: Ruby標準添付ライブラリのコードレビュー — "U.Nakamura" <usa@...> 2004/11/10

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

[#40234] Re: Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/10

MoonWolfです。

[#40235] Re: Ruby標準添付ライブラリのコードレビュー — "U.Nakamura" <usa@...> 2004/11/10

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

[#40239] Re: Ruby標準添付ライブラリのコードレビュー — Yukihiro Matsumoto <matz@...> 2004/11/10

まつもと ゆきひろです

[#40246] Re: Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/10

MoonWolfです。

[#40247] Re: Ruby標準添付ライブラリのコードレビュー — Yukihiro Matsumoto <matz@...> 2004/11/10

まつもと ゆきひろです

[#40205] Re: Ruby標準添付ライブラリのコードレビュー — Yukihiro Matsumoto <matz@...> 2004/11/09

まつもと ゆきひろです

[#40208] Re: Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/09

MoonWolfです。少しフレームぎみになるかもしれませんが、ご容赦ください。

[#40213] Re: Ruby標準添付ライブラリのコードレビュー — akira yamada / やまだあきら <akira@...> 2004/11/09

2004-11-09 (火) の 17:01 +0900 に MoonWolf さんは書きました:

[#40218] Re: Ruby標準添付ライブラリのコードレビュー — MoonWolf <moonwolf@...> 2004/11/09

MoonWolfです。

[#40266] まつもとさんの負担を減らすために、何ができるだろう — 卜部昌平 <s-urabe@...>

mput です。

16 messages 2004/11/10

[ruby-list:40170] Re: Class内Classの定義と差分ベースモジュール

From: Nowake <nowake@...>
Date: 2004-11-04 13:43:38 UTC
List: ruby-list #40170
野分です。

> ということを実現するのにRuby側でなんらかの「仕組み」が必要で
> あれば、検討するのはアリだと思います。

取りあえずは、
・クラス内クラスを参照するときにselfを使用する
・派生クラス群は基本クラス群の対象クラスを同じ名前で継承する

とすることで希望の動作をするようですので、大抵の場合は大丈夫そうです。
#サンプルは下記の通りです。


現状の問題点としては、
1. 必ずselfを明記して参照しなくてはいけない
1.1 クラス内クラスから上位のクラスを参照できない
1.2 基本クラス群の記載がちょっと特殊になる
2. Classでなくてはならない(Moduleは不可)
といったところでしょうか?

1.1は結構痛いですね。2. もMix-inを駆使するようなプログラムだと辛そうですが、
それ以外はClassで代用できそうです。

self経由で上位モジュールにアクセスする機能の実装はできそうでしょうか?

__________________________________________________________________________
class A
class AA
def AA.test1; 'A::AA#test' end
def AA.test2; self::AAA.test1 end
class AAA
def AAA.test1; 'A::AA::AAA#test' end
def AAA.test2; self::AAAA.test1 end
class AAAA
def AAAA.test1; 'A::AA::AAA::AAAA#test' end
def AAAA.test3; AAA.test1 end
# self経由でアクセスしていないため、必ずA::AA::AAA.test1を参照する
end
end
end
def A.test1; self::AA.test1 end
def A.test2; self::AA::AAA.test1 end
def A.test3; self::AA.test2 end
def A.test4; self::AA::AAA.test2 end
def A.test5; self::AA::AAA::AAAA.test3 end
end
class B < A
class AA < A::AA
def AA.test1; 'B::AA#test' end
class AAA < A::AA::AAA
def AAA.test1; 'B::AA::AAA#test' end
end
end
end
p A.test1 #=> 'A::AA#test'
p B.test1 #=> 'B::AA#test'
p A.test2 #=> 'A::AA::AAA#test'
p B.test2 #=> 'B::AA::AAA#test'
p A.test3 #=> 'A::AA::AAA#test'
p B.test3 #=> 'B::AA::AAA#test'
p A.test4 #=> 'A::AA::AAA::AAAA#test'
p B.test4 #=> 'A::AA::AAA::AAAA#test'
p A.test5 #=> 'A::AA::AAA#test'
p B.test5 #=> 'A::AA::AAA#test' ('B::AA::AAA#test' にしたい所だが、手段
無し)


In This Thread