SmalltalkChunkFileSourceWriter.st
changeset 14596 45bb7ac30ab0
parent 14409 6f53326ef2da
child 14983 a0b8519d7c50
child 18011 deb0c3355881
--- a/SmalltalkChunkFileSourceWriter.st	Mon Dec 17 11:49:26 2012 +0100
+++ b/SmalltalkChunkFileSourceWriter.st	Mon Dec 17 13:48:08 2012 +0100
@@ -40,6 +40,24 @@
 "
 ! !
 
+!SmalltalkChunkFileSourceWriter class methodsFor:'simple API'!
+
+fileOut:aClass on:aStream
+    self fileOut:aClass on:aStream withTimeStamp:true
+        withInitialize:true withDefinition:true
+        methodFilter:nil encoder:nil
+!
+
+fileOut:aClass on:aStream withTimeStamp:withTimeStamp
+        withInitialize:initIt withDefinition:withDefinition
+        methodFilter:methodFilter encoder:encoderOrNil
+
+    self new
+        fileOut:aClass on:aStream withTimeStamp:withTimeStamp
+        withInitialize:initIt withDefinition:withDefinition
+        methodFilter:methodFilter encoder:encoderOrNil
+! !
+
 !SmalltalkChunkFileSourceWriter class methodsFor:'utilities - source code'!
 
 methodTemplate
@@ -137,9 +155,7 @@
         "/
         "/ first, a timestamp
         "/
-        outStream nextPutAll:(Smalltalk timeStamp).
-        outStream nextPutChunkSeparator. 
-        outStream cr; cr.
+        self generateTimestampOn:outStream.
     ].
 
     withDefinition ifTrue:[
@@ -152,7 +168,6 @@
         "/
         (comment := nonMeta comment) notNil ifTrue:[
             nonMeta fileOutCommentOn:outStream.
-            outStream cr.
         ].
         "/
         "/ ST/X primitive definitions - if any
@@ -189,7 +204,6 @@
 "/            ].
 
             self fileOutCategory:'documentation' of:meta except:versionMethods only:nil methodFilter:methodFilter on:outStream.
-            outStream cr.
         ].
 
         "/
@@ -197,7 +211,6 @@
         "/
         (collectionOfCategories includes:'initialization') ifTrue:[
             self fileOutCategory:'initialization' of:meta methodFilter:methodFilter on:outStream.
-            outStream cr.
         ].
 
         "/
@@ -205,14 +218,12 @@
         "/
         (collectionOfCategories includes:'instance creation') ifTrue:[
             self fileOutCategory:'instance creation' of:meta methodFilter:methodFilter on:outStream.
-            outStream cr.
         ].
         collectionOfCategories do:[:aCategory |
             ((aCategory ~= 'documentation')
             and:[(aCategory ~= 'initialization')
             and:[aCategory ~= 'instance creation']]) ifTrue:[
                 self fileOutCategory:aCategory of:meta methodFilter:methodFilter on:outStream.
-                outStream cr
             ]
         ]
     ].
@@ -234,7 +245,6 @@
     collectionOfCategories notNil ifTrue:[
         collectionOfCategories do:[:aCategory |
             self fileOutCategory:aCategory of:nonMeta methodFilter:methodFilter on:outStream.
-            outStream cr
         ]
     ].
 
@@ -286,7 +296,7 @@
 fileOutAllDefinitionsOf:aNonMetaClass on:aStream
     "append expressions on aStream, which defines myself and all of my private classes."
 
-    aNonMetaClass fileOutDefinitionOn:aStream.
+    self fileOutDefinitionOf:aNonMetaClass on:aStream.
     aStream nextPutChunkSeparator. 
     aStream cr; cr.
 
@@ -322,14 +332,12 @@
     collectionOfCategories notNil ifTrue:[
         collectionOfCategories do:[:aCategory |
             self fileOutCategory:aCategory of:aClass class  methodFilter:methodFilter on:aStream.
-            aStream cr
         ]
     ].
     collectionOfCategories := aClass categories asSortedCollection.
     collectionOfCategories notNil ifTrue:[
         collectionOfCategories do:[:aCategory |
             self fileOutCategory:aCategory of:aClass methodFilter:methodFilter on:aStream.
-            aStream cr
         ]
     ].
 
@@ -417,7 +425,8 @@
         aStream space.
         aStream nextPutChunkSeparator.
         aStream cr
-    ]
+    ].
+    aStream cr
 
     "Modified: 28.8.1995 / 14:30:41 / claus"
     "Modified: 12.6.1996 / 11:37:33 / stefan"
@@ -453,6 +462,10 @@
     "/ intentionally left blank - make each line an EOL-comment instead
 !
 
+fileOutDefinitionOf:aNonMetaClass on:aStream
+    aNonMetaClass fileOutDefinitionOn:aStream.
+!
+
 fileOutMethod:aMethod on:aStream
     "file a single method onto aStream."
 
@@ -547,14 +560,21 @@
             ].
         ].
     ].
+!
+
+generateTimestampOn:outStream
+    outStream nextPutAll:(Smalltalk timeStamp).
+    outStream nextPutChunkSeparator. 
+    outStream cr; cr.
 ! !
 
 !SmalltalkChunkFileSourceWriter class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkChunkFileSourceWriter.st,v 1.18 2012-10-20 19:25:49 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkChunkFileSourceWriter.st,v 1.19 2012-12-17 12:48:08 cg Exp $'
 !
 
 version_SVN
     ^ '§ Id: SmalltalkChunkFileSourceWriter.st 10643 2011-06-08 21:53:07Z vranyj1  §'
 ! !
+