'From Pharo1.4 of 18 April 2012 [Latest update: #14457] on 1 November 2012 at 1:29:30 pm'! !ClassDescription methodsFor: 'accessing method dictionary' stamp: 'PaulDeBruicker 11/1/2012 13:18'! allMethodCategoriesIntegratedThrough: mostGenericClass "Answer a list of all the method categories of the receiver and all its superclasses, up through mostGenericClass" | otherClassCategories thisClassCategories combinedClassCategories | otherClassCategories := OrderedCollection new. self allSuperclasses do: [ :aClass | (aClass includesBehavior: mostGenericClass) ifTrue: [ otherClassCategories addAll: aClass organization categories ] ]. otherClassCategories remove: 'no messages' asSymbol ifAbsent: [ ]. thisClassCategories := self organization categories asSortedCollection: [ :a :b | a asLowercase < b asLowercase ]. ^ Array streamContents: [ :stream | stream nextPutAll: thisClassCategories; nextPutAll: ((otherClassCategories asSet removeAllSuchThat: [ :each | thisClassCategories includes: each ]) asSortedCollection: [ :a :b | a asLowercase < b asLowercase ]) ]! !