--- a/Class.st Sat Dec 09 15:44:05 1995 +0100
+++ b/Class.st Sat Dec 09 15:46:03 1995 +0100
@@ -10,7 +10,7 @@
hereby transferred.
"
-ClassDescription subclass:#Class
+!ClassDescription subclass:#Class
instanceVariableNames:'classvars comment subclasses classFilename package revision
history'
classVariableNames:'UpdatingChanges LockChangesFile FileOutErrorSignal
@@ -2303,12 +2303,12 @@
fileOutOn:aStream withTimeStamp:stampIt
"file out my definition and all methods onto aStream"
- |collectionOfCategories copyrightText comment cls versionMethod skippedMethods|
+ |collectionOfCategories copyrightMethod copyrightText comment cls versionMethod skippedMethods|
self isLoaded ifFalse:[
- ^ FileOutErrorSignal
- raiseRequestWith:self
- errorString:'will not fileOut unloaded classes'
+ ^ FileOutErrorSignal
+ raiseRequestWith:self
+ errorString:'will not fileOut unloaded classes'
].
"
@@ -2320,32 +2320,37 @@
copyright string at the beginning be preserved .... even if the
code was edited in the browser and filedOut.
"
- ((cls := self class) selectorArray includes:#copyright) ifTrue:[
- "
- get the copyright methods source,
- and insert at beginning.
- "
- copyrightText := (cls compiledMethodAt:#copyright) source.
- copyrightText isNil ifTrue:[
- "
- no source available - trigger an error
- "
- FileOutErrorSignal
- raiseRequestWith:'no source for class ' , name , ' available. Cannot fileOut'.
- ^ self
- ].
- copyrightText := copyrightText asCollectionOfLines.
- copyrightText := copyrightText copyFrom:2 to:(copyrightText size).
- copyrightText do:[:line | aStream nextPutAll:line. aStream cr.].
+ (copyrightMethod := self class compiledMethodAt:#copyright) notNil ifTrue:[
+ "
+ get the copyright methods source,
+ and insert at beginning.
+ "
+ copyrightText := copyrightMethod source.
+ copyrightText isNil ifTrue:[
+ "
+ no source available - trigger an error
+ "
+ FileOutErrorSignal
+ raiseRequestWith:'no source for class ' , name , ' available. Cannot fileOut'.
+ ^ self
+ ].
+ "
+ strip off the selector-line
+ "
+ copyrightText := copyrightText asCollectionOfLines asStringCollection.
+ copyrightText := copyrightText copyFrom:2 to:(copyrightText size).
+"/ copyrightText do:[:line | aStream nextPutAll:line. aStream cr.].
+ copyrightText := copyrightText asString.
+ aStream nextChunkPut:copyrightText.
].
stampIt ifTrue:[
- "/
- "/ first, a timestamp
- "/
- aStream nextPutAll:(Smalltalk timeStamp).
- aStream nextPutChunkSeparator.
- aStream cr; cr.
+ "/
+ "/ first, a timestamp
+ "/
+ aStream nextPutAll:(Smalltalk timeStamp).
+ aStream nextPutChunkSeparator.
+ aStream cr; cr.
].
"/
@@ -2359,19 +2364,19 @@
"/ optional classInstanceVariables
"/
self class instanceVariableString isBlank ifFalse:[
- self fileOutClassInstVarDefinitionOn:aStream.
- aStream nextPutChunkSeparator.
- aStream cr; cr
+ self fileOutClassInstVarDefinitionOn:aStream.
+ aStream nextPutChunkSeparator.
+ aStream cr; cr
].
"/
"/ a comment - if any
"/
(comment := self comment) notNil ifTrue:[
- aStream nextPutAll:name; nextPutAll:' comment:'.
- aStream nextPutAll:(comment storeString).
- aStream nextPutChunkSeparator.
- aStream cr; cr
+ aStream nextPutAll:name; nextPutAll:' comment:'.
+ aStream nextPutAll:(comment storeString).
+ aStream nextPutChunkSeparator.
+ aStream cr; cr
].
"/
@@ -2386,41 +2391,41 @@
"/
collectionOfCategories := self class categories asSortedCollection.
collectionOfCategories notNil ifTrue:[
- "/
- "/ documentation first (if any), but not the version method
- "/
- (collectionOfCategories includes:'documentation') ifTrue:[
- versionMethod := self class compiledMethodAt:#version.
- versionMethod notNil ifTrue:[
- skippedMethods := Array with:versionMethod
- ].
- self class fileOutCategory:'documentation' except:skippedMethods only:nil on:aStream.
- aStream cr.
- ].
-
- "/
- "/ initialization next (if any)
- "/
- (collectionOfCategories includes:'initialization') ifTrue:[
- self class fileOutCategory:'initialization' on:aStream.
- aStream cr.
- ].
-
- "/
- "/ instance creation next (if any)
- "/
- (collectionOfCategories includes:'instance creation') ifTrue:[
- self class fileOutCategory:'instance creation' on:aStream.
- aStream cr.
- ].
- collectionOfCategories do:[:aCategory |
- ((aCategory ~= 'documentation')
- and:[(aCategory ~= 'initialization')
- and:[aCategory ~= 'instance creation']]) ifTrue:[
- self class fileOutCategory:aCategory on:aStream.
- aStream cr
- ]
- ]
+ "/
+ "/ documentation first (if any), but not the version method
+ "/
+ (collectionOfCategories includes:'documentation') ifTrue:[
+ versionMethod := self class compiledMethodAt:#version.
+ versionMethod notNil ifTrue:[
+ skippedMethods := Array with:versionMethod
+ ].
+ self class fileOutCategory:'documentation' except:skippedMethods only:nil on:aStream.
+ aStream cr.
+ ].
+
+ "/
+ "/ initialization next (if any)
+ "/
+ (collectionOfCategories includes:'initialization') ifTrue:[
+ self class fileOutCategory:'initialization' on:aStream.
+ aStream cr.
+ ].
+
+ "/
+ "/ instance creation next (if any)
+ "/
+ (collectionOfCategories includes:'instance creation') ifTrue:[
+ self class fileOutCategory:'instance creation' on:aStream.
+ aStream cr.
+ ].
+ collectionOfCategories do:[:aCategory |
+ ((aCategory ~= 'documentation')
+ and:[(aCategory ~= 'initialization')
+ and:[aCategory ~= 'instance creation']]) ifTrue:[
+ self class fileOutCategory:aCategory on:aStream.
+ aStream cr
+ ]
+ ]
].
"/
@@ -2428,29 +2433,30 @@
"/
collectionOfCategories := self categories asSortedCollection.
collectionOfCategories notNil ifTrue:[
- collectionOfCategories do:[:aCategory |
- self fileOutCategory:aCategory on:aStream.
- aStream cr
- ]
+ collectionOfCategories do:[:aCategory |
+ self fileOutCategory:aCategory on:aStream.
+ aStream cr
+ ]
].
"/
"/ finally, the previously skipped version method
"/
versionMethod notNil ifTrue:[
- self class fileOutCategory:'documentation' except:nil only:skippedMethods on:aStream.
+ self class fileOutCategory:'documentation' except:nil only:skippedMethods on:aStream.
].
"/
"/ optionally an initialize message
"/
(self class implements:#initialize) ifTrue:[
- aStream nextPutAll:(name , ' initialize').
- aStream nextPutChunkSeparator.
- aStream cr
+ aStream nextPutAll:(name , ' initialize').
+ aStream nextPutChunkSeparator.
+ aStream cr
]
"Created: 15.11.1995 / 12:53:06 / cg"
+ "Modified: 9.12.1995 / 15:38:31 / cg"
!
fileOutPrimitiveDefinitionsOn:aStream
@@ -3352,6 +3358,6 @@
!Class class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.100 1995-12-07 22:46:02 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.101 1995-12-09 14:46:03 cg Exp $'
! !
Class initialize!