[#10793] 今度こそ (patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.) — kou@...1609.sip.eee.yamaguchi-u.ac.jp (Koichi Okada)

岡田です。

10 messages 2000/09/01

[#10920] SIGINT on windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

17 messages 2000/09/14
[#11077] Re: SIGINT on windows — matz@... (Yukihiro Matsumoto) 2000/09/27

まつもと ゆきひろです

[#10944] dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

19 messages 2000/09/18
[#10955] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10963] Re: dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/09/19

なかだです。

[#10964] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10978] [PATCH] require in require — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

15 messages 2000/09/20

[#10985] httphead.rb proxy version problem — Katsuyuki Komatsu <komatsu@...>

小松です.

16 messages 2000/09/20
[#10989] Re: httphead.rb proxy version problem — Minero Aoki <aamine@...> 2000/09/20

あおきです。

[ruby-dev:10935] Re: Meta-Level API

From: Hiroshi IGARASHI <igarashi@...>
Date: 2000-09-17 10:48:11 UTC
List: ruby-dev #10935
いがらしです。

At Sun, 17 Sep 2000 01:25:32 +0900,
in [ruby-dev:10933] Meta-Level API,
Hiroshi IGARASHI <igarashi@ueda.info.waseda.ac.jp> wrote:
> 
> Module#direct_included_modules
>     直接includeしているModuleだけ返す版。

無理矢理ですがこんな感じで計算できます。

class Module
  def included_modules_at
    ams = ancestors
    case ams.size # > 0
    when 1 # root modules
      []
    when 2 # 2nd gen. modules and class Object
      [ams[1]]
    else   # ams.size>2  other modules and classes
      ims = ams
      i = 1
      while i < ams.size
	m = ams[i]
	if m.type == Class
	  ims -= m.ancestors
	  break
	end
	ims -= m.included_modules_at
	i += 1
      end
      ims - [self]
    end
  end
end

計算量のorderがかなり大きそうですが、
普通はmoduleをincludeしても数個なので、
まあ許容できるかなと。

もっとまともなアルゴリズムがあると思いますが、
アルゴリズムの教科書を復習してから出直します。
実はものすごくスマートな方法があったりして^_^;;

--
五十嵐  宏  (Hiroshi IGARASHI)

In This Thread