- CypressSnapshotTest
changed: #testSnapshot
- CypressPackageDefinition
changed: #snapshot
- stx_goodies_cypress
changed:
#classNamesAndAttributes
#extensionMethodNames
#preRequisites
- extensions
...
--- 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'!