メソッドを実装しているクラスを一覧する

squeakの場合

World findATranscript: nil.
Transcript clear.
Object allSubclassesDo: [:each|
  "Transcript show: each printString; cr."
  each allSelectors do: [:m|
    (m = #nextLine) ifTrue: [
      Transcript show: each printString; cr
    ]
  ]
].
Transcript show: '-----done'; cr.

ProtoObjectは、まあ、よしとするということで。

vwの場合

Transcript clear.
Object allSubclassesDo: [:each|
  each allSelectors do: [:m|
    (m = #nextLine) ifTrue: [
      Transcript show: each printString; cr
    ]
  ]
].
Transcript show: '-----done'; cr.

まとめ

Bahaviorクラスを見た。

  • Behavior>>allSubclassesDo:
  • Behavior>>selectors
    • method dictionaryのキーを返す
  • Behavior>>allSelectors
    • 親もさかのぼって探す