class: NewLauncher
authorClaus Gittinger <cg@exept.de>
Tue, 27 Jan 2015 16:16:58 +0100
changeset 3712 88d2378e79e1
parent 3711 2c25e442c4d2
child 3713 714678c218e8
class: NewLauncher changed: #fileLoadPackage
VSEPackageFileSourceWriter.st
--- a/VSEPackageFileSourceWriter.st	Sun Jan 25 01:26:29 2015 +0100
+++ b/VSEPackageFileSourceWriter.st	Tue Jan 27 16:16:58 2015 +0100
@@ -72,6 +72,49 @@
 "
 ! !
 
+!VSEPackageFileSourceWriter class methodsFor:'utilities'!
+
+fileOutPackage:packageID on:aStream
+    |classesToFileout writer|
+
+    aStream lineEndCRLF.
+
+    classesToFileout := Smalltalk allClassesInPackage:packageID.
+    classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
+
+    writer := VSEPackageFileSourceWriter new.
+    writer packageName:packageID.
+    writer writeHeaderOn:aStream.
+
+    AbstractSourceFileWriter methodSourceRewriteQuery handle:[:rewriteQuery |
+        |method source|
+
+        method := rewriteQuery method.
+        source := rewriteQuery source.
+        source := VSEChunkFileSourceWriter vseSourceRewriter rewriteMethod:method.
+        rewriteQuery proceedWith:source.
+    ] do:[
+        classesToFileout do:[:eachClass |
+            writer fileOut:eachClass on:aStream
+        ].
+
+        "/ fileout extensions
+        Smalltalk allClassesDo:[:eachClass |
+            (classesToFileout includes:eachClass) ifFalse:[
+                eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                    |mPckg|
+
+                    mPckg := mthd package.
+                    (mPckg = packageID and:[mPckg ~= eachClass package]) ifTrue:[
+                        writer fileOutMethod:mthd on:aStream.
+                        aStream cr.
+                    ]
+                ]
+            ].
+        ].
+    ].
+! !
+
 !VSEPackageFileSourceWriter methodsFor:'accessing'!
 
 packageName:something
@@ -270,10 +313,10 @@
 !VSEPackageFileSourceWriter class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/VSEPackageFileSourceWriter.st,v 1.1 2015-01-21 09:49:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/VSEPackageFileSourceWriter.st,v 1.2 2015-01-27 15:16:58 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/VSEPackageFileSourceWriter.st,v 1.1 2015-01-21 09:49:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/VSEPackageFileSourceWriter.st,v 1.2 2015-01-27 15:16:58 cg Exp $'
 ! !