added:5 methods
authorClaus Gittinger <cg@exept.de>
Tue, 08 Feb 2011 11:48:08 +0100
changeset 2323 3c9f00f9ca34
parent 2322 c5ebd3b56e54
child 2324 131e855b6eec
added:5 methods changed: #fromDiffSet:
ChangeSet.st
--- a/ChangeSet.st	Tue Feb 08 11:09:36 2011 +0100
+++ b/ChangeSet.st	Tue Feb 08 11:48:08 2011 +0100
@@ -261,10 +261,14 @@
     |changeSet|
 
     changeSet := self new.
+    "/ class definitions first...
+    changeSet addAll:((aDiffSet changed collect:[:eachPair | eachPair second]) select:[:ch | ch isClassDefinitionChange]).
+    changeSet addAll:((aDiffSet onlyInArg) select:[:ch | ch isClassDefinitionChange]).
+
     "/ first add new methods...
-    changeSet addAll:(aDiffSet onlyInArg).
+    changeSet addAll:((aDiffSet onlyInArg) reject:[:ch | ch isClassDefinitionChange]).
     "/ then, changed methods...
-    changeSet addAll:(aDiffSet changed collect:[:eachPair | eachPair second]).
+    changeSet addAll:((aDiffSet changed collect:[:eachPair | eachPair second]) reject:[:ch | ch isClassDefinitionChange]).
     "/ then, removed methods...
     aDiffSet onlyInReceiver do:[:each |
         |ch|
@@ -1550,6 +1554,78 @@
     ^ret
 
     "Modified: / 12-10-2006 / 22:22:39 / cg"
+!
+
+saveSignedToFile:aFilename
+    "write the changeSet to a signed file in chunk format"
+
+    self saveSignedToFile:aFilename format:nil
+
+    "Created: / 08-02-2011 / 11:18:54 / cg"
+!
+
+saveSignedToFile:aFilename format:formatSymbolOrNil
+    "write the changeSet to a signed file in some format.
+     Sign with the exept key (which you do not have outside of exept!!).
+     Nil fomat is chunk"
+
+    |s pkcs7SignedData|
+
+    s := WriteStream on:(String new:2000).
+    self saveToStream:s format:formatSymbolOrNil.
+
+    pkcs7SignedData := Expecco::KeyFileGenerator new signExpeccoCode:s contents.
+    aFilename asFilename contents:pkcs7SignedData.
+
+    "Modified: / 08-02-2011 / 11:48:01 / cg"
+!
+
+saveToFile:aFilename
+    "write the changeSet to a regular file in chunk format"
+
+    self saveToFile:aFilename format:nil
+
+    "Created: / 08-02-2011 / 11:18:46 / cg"
+!
+
+saveToFile:aFilename format:formatSymbolOrNil
+    "write the changeSet to a regular file in some format.
+     Nil fomat is chunk"
+
+    |s|
+
+    s := aFilename asFilename writeStream.
+    self saveToStream:s format:formatSymbolOrNil.
+    s close.
+
+    "Created: / 08-02-2011 / 11:20:06 / cg"
+!
+
+saveToStream:aStream format:formatSymbolOrNil
+    "write the changeSet to a stream in some format.
+     Nil fomat is chunk"
+
+    formatSymbolOrNil isNil ifTrue:[
+        self do:[:eachChange |
+            eachChange isMethodCodeChange ifTrue:[
+                aStream nextPutAll:'!!',(eachChange className),' methodsFor: '.
+                aStream nextPutAll:(eachChange methodCategory storeString).
+                aStream nextPutLine:'!!'.
+                aStream cr.
+                aStream nextPutAll:(eachChange source).
+                aStream nextPutLine:'!! !!'.
+                aStream cr.
+           ] ifFalse:[
+                aStream nextPutAll:(eachChange source).
+                aStream nextPutLine:'!!'.
+                aStream cr.
+            ].
+        ].
+    ].
+
+self halt
+
+    "Created: / 08-02-2011 / 11:25:16 / cg"
 ! !
 
 !ChangeSet::ChangeFileReader methodsFor:'accessing'!
@@ -2576,9 +2652,9 @@
 !ChangeSet class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.176 2011-02-08 10:09:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.177 2011-02-08 10:48:08 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.176 2011-02-08 10:09:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.177 2011-02-08 10:48:08 cg Exp $'
 ! !