• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

なんでClass#superclassはあるのに#subclassesはないんだろう?

ruby>>
class Class
def subclasses
ret = []
ObjectSpace.each_object(Class) do |cls|
ret << cls if cls.superclass == self
end
ret
end
end
<<ruby

posted by technohippy technohippy on Mon 4 Aug 2008 at 01:40 with 5 comments
瀧内元気 瀧内元気 08/04 02:30
superclassはloadされてることが保障されてるけど、subclassesはloadされてない可能性があるので、ちゃんと機能させようとしたら

ruby>>
Dir.glob("app/models/**/*.rb").each{|i| load i}
<<--

みたいな事をする必要があるからじゃないですかね。
nov nov 08/04 10:11
あれ?
今某プロフィールサービスではsubclasses使えてるけど、あれはRailsだから??
まぁもちろんすべてのsubclassをloadしてからしかちゃんと動作しないですけど。


なるほど、loadしてないと見えないからか。
いわれて見ればそのとおりですね。

あと、いまscript/consoleでみたらたしかにRailsにはありますね。
ActiveSupportはいろいろやりすぎてて全然把握できない・・・。
maiha maiha 08/07 12:11
load されてないのは今は存在しない(必要とされてない)クラスだから無視されて然るべき、だよ派。どちらにしても、後からサブクラスを動的に追加されうる以上、どうやっても完全性は満たせないし。

という観点から行くと、現時点で利用可能なサブクラスの一覧、という機能としての subclasses はあっていいと思う。てか、入れれ>AS
瀧内元気 瀧内元気 08/07 19:37
`ancestors`への対象性から`descendants`も欲しくなりますね。

これはASにも入ってないみたいだ。
Contents rssrss
Fixnum#respond_to?
falseとnilと
クラス定義
Class#subclasses
そういえば
とりあえずCM
Tags
CM
Comments rssrss
あんどうやすし あんどうやすし: おぉ、舞波本の"!!"を見てなるほどと思ったはずなのに面倒くさくて使ってなかったらすっかり忘れてまし... 08/08 00:30
瀧内元気 瀧内元気: `ancestors`への対象性から`descendants`も欲しくなりますね。 これはASにも... 08/07 19:37
maiha maiha: 演算子ではないけど最後に "|| false" をつけるとか。 あとは "!!" が真偽値正規化のイ... 08/07 13:02
maiha maiha: load されてないのは今は存在しない(必要とされてない)クラスだから無視されて然るべき、だよ派。ど... 08/07 12:11
あんどうやすし あんどうやすし: なるほど、loadしてないと見えないからか。 いわれて見ればそのとおりですね。 あと、いまscri... 08/04 10:59
nov nov: あれ? 今某プロフィールサービスではsubclasses使えてるけど、あれはRailsだから?? ま... 08/04 10:11
瀧内元気 瀧内元気: superclassはloadされてることが保障されてるけど、subclassesはloadされてな... 08/04 02:30
瀧内元気 瀧内元気: 了解です。 07/31 21:14
Services from s21g
YOMU Web小説リーダー
小説投稿サイトの公式ページを開き、WebView表示と読み上げ向け表示を切り替えて、移動中や作業中にもWeb小説の続きを聴きやすくするiPhoneアプリです。
補助探
公開されている補助金・助成金情報を集約し、条件に合う制度を探しやすくするサービスです。
jotter.me
個人開発者のためのホスティング一体型ノートサービス
ハンドミラー
iPhone向けの手鏡アプリ
ツイプロ(twpro)
Twitterプロフィールの高速検索エンジン