class: NewLauncher
authorClaus Gittinger <cg@exept.de>
Tue, 27 Jan 2015 16:17:03 +0100
changeset 3713 714678c218e8
parent 3712 88d2378e79e1
child 3714 bc74a7bb3a19
class: NewLauncher changed: #fileLoadPackage
VSEChunkFileSourceWriter.st
--- a/VSEChunkFileSourceWriter.st	Tue Jan 27 16:16:58 2015 +0100
+++ b/VSEChunkFileSourceWriter.st	Tue Jan 27 16:17:03 2015 +0100
@@ -85,6 +85,48 @@
     ^ VSESourceRewriter
 ! !
 
+!VSEChunkFileSourceWriter class methodsFor:'utilities'!
+
+fileOutPackage:packageID on:aStream
+    |classesToFileout|
+
+    aStream lineEndCRLF.
+
+    classesToFileout := Smalltalk allClassesInPackage:packageID.
+    classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
+
+    AbstractSourceFileWriter methodSourceRewriteQuery handle:[:rewriteQuery |
+        |method source|
+
+        method := rewriteQuery method.
+        source := rewriteQuery source.
+        source := VSEChunkFileSourceWriter vseSourceRewriter rewriteMethod:method.
+        rewriteQuery proceedWith:source.
+    ] do:[
+        classesToFileout do:[:eachClass |
+            eachClass fileOutOn: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:[
+                        eachClass
+                            fileOutCategory:mthd category
+                            methodFilter:[:m | m == mthd]
+                            on:aStream.
+                        aStream cr.
+                    ]
+                ]
+            ].
+        ].
+    ].
+! !
+
 !VSEChunkFileSourceWriter methodsFor:'source writing'!
 
 fileOutCategory:aCategory of:aClass except:skippedMethods only:savedMethods methodFilter:methodFilter on:aStream
@@ -314,10 +356,10 @@
 !VSEChunkFileSourceWriter class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/VSEChunkFileSourceWriter.st,v 1.2 2015-01-21 09:48:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/VSEChunkFileSourceWriter.st,v 1.3 2015-01-27 15:17:03 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/VSEChunkFileSourceWriter.st,v 1.2 2015-01-21 09:48:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/VSEChunkFileSourceWriter.st,v 1.3 2015-01-27 15:17:03 cg Exp $'
 ! !