- CypressSnapshotTest
authorjv
Thu, 30 Aug 2012 12:26:00 +0000
changeset 3 9a409f9edb67
parent 2 a26b35650f67
child 4 207b76be6bcd
- CypressSnapshotTest changed: #testSnapshot - CypressPackageDefinition changed: #snapshot - stx_goodies_cypress changed: #classNamesAndAttributes #extensionMethodNames #preRequisites - extensions ...
CypressPackageDefinition.st
CypressSnapshotTest.st
Make.proto
bc.mak
cypress.rc
extensions.st
stx_goodies_cypress.st
--- a/CypressPackageDefinition.st	Thu Aug 30 12:00:08 2012 +0000
+++ b/CypressPackageDefinition.st	Thu Aug 30 12:26:00 2012 +0000
@@ -36,10 +36,10 @@
 !CypressPackageDefinition methodsFor:'snapshotting'!
 
 snapshot
-    | package definitions map classMap |
-    package := CodePackage named: self name createIfAbsent: true registerIfNew: false.
+    | package definitions classMap |
+    package := ProjectDefinition definitionClassForPackage: self name createIfAbsent: true.
     definitions := OrderedCollection new.
-    (ChangeSet superclassOrder: package classes)
+    package classes
         do: [ :cls | 
             definitions add: cls asCypressClassDefinition.
             (cls methodDictionary values asSortedCollection: [ :a :b | a selector <= b selector ])
@@ -51,30 +51,16 @@
                     (method category at: 1) = $*
                         ifFalse: [ definitions add: method asCypressMethodDefinition ] ] ].
     classMap := Dictionary new.
-    Smalltalk allClasses
-        do: [ :each | 
-            {each.
-            (each class)}
-                do: [ :aClass | 
-                    | defs |
-                    defs := OrderedCollection new.
-                    map := Dictionary new.
-                    aClass organization categories
-                        do: [ :category | 
-                            | methods |
-                            methods := aClass organization listAtCategoryNamed: category.
-                            (category asLowercase beginsWith: '*' , self name asLowercase)
-                                ifTrue: [ map at: category put: methods ] ].
-                    (map keys asSortedCollection: [ :a :b | a <= b ])
-                        do: [ :category | 
-                            ((map at: category) asSortedCollection: [ :a :b | a <= b ])
-                                do: [ :method | defs add: (aClass compiledMethodAt: method) asCypressMethodDefinition ] ].
-                    defs notEmpty
-                        ifTrue: [ classMap at: each put: defs ] ] ].
-    (ChangeSet superclassOrder: classMap keys) do: [ :aClass | definitions addAll: (classMap at: aClass) ].
+
+    package extensionMethods do:[:mthd|
+        (classMap at: mthd mclass theNonMetaclass ifAbsentPut:[SortedCollection sortBlock:[:m1 :m2|m1 category < m2 category]])
+            add: mthd asCypressMethodDefinition
+    ].
+
+    (Class classesSortedByLoadOrder: classMap keys) do: [ :aClass | definitions addAll: (classMap at: aClass) ].
     ^ CypressSnapshot definitions: definitions
 
-    "Modified: / 30-08-2012 / 13:32:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-08-2012 / 14:25:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !CypressPackageDefinition class methodsFor:'documentation'!
--- a/CypressSnapshotTest.st	Thu Aug 30 12:00:08 2012 +0000
+++ b/CypressSnapshotTest.st	Thu Aug 30 12:26:00 2012 +0000
@@ -14,10 +14,12 @@
 !CypressSnapshotTest methodsFor:'testing'!
 
 testSnapshot
-	| name pkg  |
-	name := 'Cypress-Mocks'.
-	pkg := CypressPackageDefinition new name: name.
-	self validatePackage: pkg against: self baseDefinitions
+        | name pkg  |
+        name := self class package. "/'Cypress-Mocks'.
+        pkg := CypressPackageDefinition new name: name.
+        self validatePackage: pkg against: self baseDefinitions
+
+    "Modified: / 30-08-2012 / 14:01:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 testSnapshotEquality
--- a/Make.proto	Thu Aug 30 12:00:08 2012 +0000
+++ b/Make.proto	Thu Aug 30 12:26:00 2012 +0000
@@ -162,7 +162,7 @@
 $(OUTDIR)CypressModification.$(O) CypressModification.$(H): CypressModification.st $(INCLUDE_TOP)/stx/goodies/cypress/CypressPatchOperation.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CypressPackageStructure.$(O) CypressPackageStructure.$(H): CypressPackageStructure.st $(INCLUDE_TOP)/stx/goodies/cypress/CypressStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CypressRemoval.$(O) CypressRemoval.$(H): CypressRemoval.st $(INCLUDE_TOP)/stx/goodies/cypress/CypressPatchOperation.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Array.$(H) $(INCLUDE_TOP)/stx/libbasic/Boolean.$(H) $(INCLUDE_TOP)/stx/libbasic/Character.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Class.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/String.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Array.$(H) $(INCLUDE_TOP)/stx/libbasic/Boolean.$(H) $(INCLUDE_TOP)/stx/libbasic/Character.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Class.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/String.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/bc.mak	Thu Aug 30 12:00:08 2012 +0000
+++ b/bc.mak	Thu Aug 30 12:26:00 2012 +0000
@@ -98,6 +98,6 @@
 $(OUTDIR)CypressModification.$(O) CypressModification.$(H): CypressModification.st $(INCLUDE_TOP)\stx\goodies\cypress\CypressPatchOperation.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)CypressPackageStructure.$(O) CypressPackageStructure.$(H): CypressPackageStructure.st $(INCLUDE_TOP)\stx\goodies\cypress\CypressStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)CypressRemoval.$(O) CypressRemoval.$(H): CypressRemoval.st $(INCLUDE_TOP)\stx\goodies\cypress\CypressPatchOperation.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Array.$(H) $(INCLUDE_TOP)\stx\libbasic\Boolean.$(H) $(INCLUDE_TOP)\stx\libbasic\Character.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Class.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Array.$(H) $(INCLUDE_TOP)\stx\libbasic\Boolean.$(H) $(INCLUDE_TOP)\stx\libbasic\Character.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Class.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
--- a/cypress.rc	Thu Aug 30 12:00:08 2012 +0000
+++ b/cypress.rc	Thu Aug 30 12:26:00 2012 +0000
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.1\0"
-      VALUE "ProductDate", "Thu, 30 Aug 2012 11:59:55 GMT\0"
+      VALUE "ProductDate", "Thu, 30 Aug 2012 12:25:51 GMT\0"
     END
 
   END
--- a/extensions.st	Thu Aug 30 12:00:08 2012 +0000
+++ b/extensions.st	Thu Aug 30 12:26:00 2012 +0000
@@ -119,6 +119,21 @@
     aStream nextPutAll: ' }'
 ! !
 
+!Method methodsFor:'converting'!
+
+asCypressMethodDefinition
+
+        ^CypressMethodDefinition 
+                className: (self methodClass isMeta ifTrue: [ self methodClass theNonMetaClass ] ifFalse: [ self methodClass ]) name
+                classIsMeta: self methodClass isMeta
+                selector: self selector
+                category: self category
+                source: self getSource
+                timeStamp: self timeStamp
+
+    "Created: / 30-08-2012 / 14:05:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !Number methodsFor:'*Cypress-Structure'!
 
 writeCypressJsonOn: aStream forHtml: forHtml indent: startIndent
--- a/stx_goodies_cypress.st	Thu Aug 30 12:00:08 2012 +0000
+++ b/stx_goodies_cypress.st	Thu Aug 30 12:26:00 2012 +0000
@@ -31,7 +31,7 @@
         #'stx:goodies/sunit'    "TestAsserter - superclass of CypressSnapshotTest "
         #'stx:libbasic'    "Magnitude - superclass of extended Number "
         #'stx:libbasic2'
-        #'stx:libbasic3'    "ChangeSet - referenced by CypressPackageDefinition>>snapshot "
+        #'stx:libbasic3'
         #'stx:libcomp'    "Parser - referenced by CypressPackageReader>>readMethodStructureFor:in:methodProperties: "
         #'stx:libcompat'
         #'stx:libhtml'
@@ -98,6 +98,7 @@
         String asCypressPropertyObject
         String encodeForHTTP
         String writeCypressJsonOn:forHtml:indent:
+        Method asCypressMethodDefinition
     )
 ! !
 
@@ -156,7 +157,7 @@
     "Return a SVN revision number of myself.
      This number is updated after a commit"
 
-    ^ "$SVN-Revision:"'nil             '"$"
+    ^ "$SVN-Revision:"'3               '"$"
 ! !
 
 !stx_goodies_cypress class methodsFor:'documentation'!