added: #methodSourceRewriteQuery
authorfm
Tue, 29 Sep 2009 18:16:28 +0200
changeset 12041 afa57da40ad1
parent 12040 373a8b88bd34
child 12042 324365132b54
added: #methodSourceRewriteQuery
AbstractSourceFileWriter.st
--- a/AbstractSourceFileWriter.st	Tue Sep 29 15:06:05 2009 +0200
+++ b/AbstractSourceFileWriter.st	Tue Sep 29 18:16:28 2009 +0200
@@ -7,10 +7,27 @@
 	category:'Kernel-Classes'
 !
 
-!AbstractSourceFileWriter class methodsFor:'documentation'!
+Query subclass:#MethodSourceRewriteQuery
+	instanceVariableNames:'method source'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:AbstractSourceFileWriter
+!
+
+
+!AbstractSourceFileWriter class methodsFor:'signal constants'!
 
-version_SVN
-    ^'$Id: AbstractSourceFileWriter.st,v 1.2 2009-09-23 12:23:23 fm Exp $'
+methodSourceRewriteQuery
+    "hook to allow for just-in-time rewriting of a method's sourceCode while filing out
+    used when saving version_XXX methods in a non-XXX sourceCodeManager
+    (i.e. to rewrite all non-CVS version methods while saving into a CVS repository)
+    this is required because we cannot save an SVN version method (dollar-ID-...-dollar) into a
+    CVS repository without loosing the original string with the next checkout, because it also gets  
+    expanded by CVS. The same is true vice-versa for CVS-Ids, which get clobbered by SVN.
+
+    see SmalltalkChunkFileSourceWriter fileOutMethod:on:"
+
+    ^ MethodSourceRewriteQuery
 ! !
 
 !AbstractSourceFileWriter methodsFor:'fileout'!
@@ -95,8 +112,46 @@
     "Created: / 21-08-2009 / 09:40:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
 ! !
 
+!AbstractSourceFileWriter::MethodSourceRewriteQuery class methodsFor:'documentation'!
+
+documentation
+"
+    hook to allow for just-in-time rewriting of a method's sourceCode while filing out
+    used when saving version_XXX methods in a non-XXX sourceCodeManager
+    (i.e. to rewrite all non-CVS version methods while saving into a CVS repository)
+    this is required because we cannot save an SVN version method (dollar-ID-...-dollar) into a
+    CVS repository without loosing the original string with the next checkout, because it also gets  
+    expanded by CVS. The same is true vice-versa for CVS-Ids, which get clobbered by SVN.
+
+    see SmalltalkChunkFileSourceWriter fileOutMethod:on:
+"
+! !
+
+!AbstractSourceFileWriter::MethodSourceRewriteQuery methodsFor:'accessing'!
+
+method
+    ^ method
+!
+
+method:methodArg source:sourceArg 
+    method := methodArg.
+    source := sourceArg.
+!
+
+source
+    ^ source
+! !
+
 !AbstractSourceFileWriter class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/AbstractSourceFileWriter.st,v 1.2 2009-09-23 12:23:23 fm Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/AbstractSourceFileWriter.st,v 1.3 2009-09-29 16:16:28 fm Exp $'
+!
+
+version_CVS
+    ^ '$Header: /cvs/stx/stx/libbasic/AbstractSourceFileWriter.st,v 1.3 2009-09-29 16:16:28 fm Exp $'
+!
+
+version_SVN
+    ^'Id: AbstractSourceFileWriter.st,v 1.2 2009/09/23 12:23:23 fm Exp '
 ! !