- CypressWriter
class definition
added:8 methods
changed: #documentation
- stx_goodies_cypress
changed:
#classNamesAndAttributes
#extensionMethodNames
#preRequisites
- CypressModel
added: #writeTo:using:
- CypressMethod
added:
#category
#source
#writeTo:using:
- CypressAbstractWriter
added:30 methods
category of:
- CypressPackage
added:
#comment
#comment:
#definition
#writeTo:using:
- CypressRepository
added:5 methods
changed: #directory:
category of:
- CypressClass
added:
#comment
#comment:
#writeTo:using:
- extensions
...
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CypressAbstractWriter.st Mon Sep 17 18:05:30 2012 +0000
@@ -0,0 +1,332 @@
+"{ Package: 'stx:goodies/cypress' }"
+
+Object subclass:#CypressAbstractWriter
+ instanceVariableNames:'repository notice'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Cypress-New-Reader & Writer'
+!
+
+!CypressAbstractWriter class methodsFor:'documentation'!
+
+documentation
+"
+ Base abstract class for writing code in Cypress format. Subclasses may
+ implement various versions of the 'standard'.
+
+ [author:]
+ Jan Vrany <jan.vrany@fit.cvut.cz>
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+ CypressWriter
+
+"
+! !
+
+!CypressAbstractWriter class methodsFor:'instance creation'!
+
+onDirectory: aStringOrFilename
+ ^self onRepository: (CypressRepository on: aStringOrFilename)
+
+ "Created: / 17-09-2012 / 17:17:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+onRepository: aCypressRepository
+ ^self new repository: aCypressRepository
+
+ "Created: / 17-09-2012 / 17:16:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CypressAbstractWriter methodsFor:'accessing'!
+
+notice
+ "Return the copyright notice to be written"
+
+ ^notice
+
+ "Created: / 17-09-2012 / 17:18:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+notice: aString
+ "Sets the copyright notice to be written in each file"
+
+ notice := aString.
+
+ "Modified (comment): / 17-09-2012 / 17:19:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+repository
+ ^ repository
+!
+
+repository:aCypressRepository
+ repository := aCypressRepository.
+ notice := repository properties at: 'copyrightLine' ifAbsent:[nil].
+
+ "Modified: / 17-09-2012 / 17:20:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CypressAbstractWriter methodsFor:'accessing-filenames'!
+
+directoryNameForClass: cclass
+ ^((cclass name copyReplaceAll: $: with: $_) , '.', self suffixForClass).
+
+ "Created: / 17-09-2012 / 18:11:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+directoryNameForExtensions: classname
+ ^((classname copyReplaceAll: $: with: $_) , '.', self suffixForExtensions).
+
+ "Created: / 17-09-2012 / 18:27:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+directoryNameForPackage: aCypressPackage
+
+ ^(aCypressPackage name copy
+ replaceAll:$: with: $_;
+ replaceAll:$/ with: $_;
+ yourself) , '.' , self suffixForPackage
+
+ "Created: / 17-09-2012 / 17:32:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileNameForComment
+ ^repository properties at:'commentFile' ifAbsent:['README.md']
+
+ "Created: / 17-09-2012 / 18:07:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileNameForMethod: cmethod
+ ^Dictionary new
+ at: $/ put: '__quo__';
+ "/Add more..."
+
+ at: cmethod selector ifAbsent:[
+ ((cmethod selector copyReplaceAll:$: with: $.) , '.st')
+ ]
+
+ "Created: / 17-09-2012 / 18:22:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+filenameNameForProperties
+ ^'properties.ston'
+
+ "Created: / 17-09-2012 / 17:38:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+suffixForClass
+ ^'class'
+
+ "Created: / 17-09-2012 / 18:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+suffixForExtensions
+ ^'extension'
+
+ "Created: / 17-09-2012 / 18:09:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+suffixForPackage
+ ^'package'
+
+ "Created: / 17-09-2012 / 18:09:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CypressAbstractWriter methodsFor:'writing'!
+
+write: packageIdOrProjectDefinition
+ | cpkg |
+
+ cpkg := packageIdOrProjectDefinition asCypressPackage.
+ self writePackage: cpkg to: repository directory
+
+ "Created: / 17-09-2012 / 17:22:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CypressAbstractWriter methodsFor:'writing-model'!
+
+writeClass: cclass to: directory
+ self subclassResponsibility
+
+ "Created: / 17-09-2012 / 18:40:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+writeMethod: cmethod to: directory
+ self subclassResponsibility
+
+ "Created: / 17-09-2012 / 18:40:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+writePackage: cpackage to: directory
+ self subclassResponsibility
+
+ "Created: / 17-09-2012 / 17:34:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CypressAbstractWriter methodsFor:'writing-utils'!
+
+writeClasses: classes to: directory
+ "Writes my classes into 'directory' with given copyrightNotice"
+
+ | obsolete |
+
+ " collect possibly obsolete .class directories "
+ obsolete := Set new.
+ directory directoryContentsAsFilenamesDo:[:each|
+ | suffix |
+
+ each suffix = self suffixForClass ifTrue:[
+ obsolete add: each.
+ ]
+ ].
+
+ " write classes... "
+ classes do:[:cclass|
+ | cpsClsDir |
+
+ cpsClsDir := directory / (self directoryNameForClass: cclass).
+ obsolete remove:cpsClsDir ifAbsent:[].
+ self writeClass: cclass to: directory
+ ].
+
+ " wipe out obsolete .class directories "
+ obsolete do:[:each|
+ each recursiveRemove.
+ ].
+
+ "Created: / 17-09-2012 / 18:12:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+writeComment: comment to: directory
+ comment isNil ifTrue:[ ^ self ].
+
+ (directory / (self fileNameForComment)) writingFileDo:[:f|
+ f nextPutAll: comment
+ ]
+
+ "Created: / 17-09-2012 / 17:47:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+writeExtensions: extensions to: directory
+ "Writes extensions into 'directory'/file with given copyrightNotice"
+
+ | obsolete extensionsPerClass |
+
+ " group extensions by class... "
+ extensionsPerClass := Dictionary new.
+ extensions do:[:cpsMthd |
+ (extensionsPerClass at: cpsMthd klass ifAbsentPut: [ Set new ])
+ add: cpsMthd.
+ ].
+
+ " collect possibly obsolete .extension directories "
+ obsolete := Set new.
+ directory directoryContentsAsFilenamesDo:[:each|
+ | suffix |
+
+ each suffix = 'extension' ifTrue:[
+ obsolete add: each.
+ ]
+ ].
+
+ " write individual extensions... "
+ extensionsPerClass keysAndValuesDo:[:name :cpsMthds |
+ | cpsClsDir cpsCls |
+
+ cpsClsDir := directory / (self directoryNameForExtensions: name).
+ obsolete remove: cpsClsDir ifAbsent:[].
+ cpsClsDir exists ifFalse: [ cpsClsDir makeDirectory ].
+
+ self writeMethods: cpsMthds to: cpsClsDir.
+ ].
+
+ " wipe out obsolete .class directories "
+ obsolete do:[:each|
+ each recursiveRemove.
+ ].
+
+ "Created: / 17-09-2012 / 18:29:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+writeMethods: methods to:directory
+ "Writes methods into given 'directory' with copyrightNotice in each file"
+
+ | obsolete instDir classDir |
+
+ instDir := directory / 'instance'.
+ classDir := directory / 'class'.
+
+ " collect possibly obsolete directories/files "
+ obsolete := Set new.
+ instDir exists ifTrue:[
+ obsolete add: instDir.
+ obsolete addAll: instDir directoryContentsAsFilenames
+ ].
+ classDir exists ifTrue:[
+ obsolete add: classDir.
+ obsolete addAll: classDir directoryContentsAsFilenames
+ ].
+
+ methods do:[:cpsMthd|
+ | dir dottedSel file baseNameWithoutSuffix |
+
+ dir := cpsMthd meta ifTrue:[classDir] ifFalse:[instDir].
+ dir exists ifFalse:[ dir makeDirectory ].
+ file := dir / (self fileNameForMethod: cpsMthd).
+ baseNameWithoutSuffix := file withoutSuffix baseName.
+ self writeMethod: cpsMthd to: dir.
+ obsolete := obsolete reject:[:each|
+ each withoutSuffix baseName = baseNameWithoutSuffix
+ ].
+ ].
+
+ " wipe out obsolete directories / files "
+ obsolete do:[:each|
+ each exists ifTrue:[ each recursiveRemove ]
+ ].
+
+ "Created: / 17-09-2012 / 18:29:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+writeProperties: properties to: directory
+ | props propertyFile |
+
+ props := properties copy.
+ props isEmptyOrNil ifTrue:[ ^ self ].
+ propertyFile := directory / self filenameNameForProperties.
+
+ " add notice "
+ props at: '_cypress_copyright' put: notice.
+
+ " be nice and do not discard properties of others. Merge them"
+ propertyFile exists ifTrue:[
+ | existing |
+ existing := CypressJsonParser parse: propertyFile.
+ existing keysAndValuesDo:[:key :value|
+ (props includesKey: key) ifFalse:[
+ props at: key put: value
+ ]
+ ]
+ ].
+ props isEmpty ifTrue:[
+ propertyFile exist ifTrue:[
+ propertyFile remove
+ ]
+ ] ifFalse:[
+ propertyFile writingFileDo:[:s|
+ props writeCypressJsonOn: s forHtml: false indent: 0.
+ ]
+ ].
+
+ "Created: / 17-09-2012 / 17:38:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CypressAbstractWriter class methodsFor:'documentation'!
+
+version_SVN
+ ^ '$Id:: $'
+! !
--- a/CypressClass.st Thu Sep 13 14:58:01 2012 +0000
+++ b/CypressClass.st Mon Sep 17 18:05:30 2012 +0000
@@ -28,6 +28,14 @@
!CypressClass methodsFor:'accessing'!
+comment
+ ^ comment
+!
+
+comment:something
+ comment := something.
+!
+
methods
methods isNil ifTrue:[
@@ -87,30 +95,6 @@
"Created: / 11-09-2012 / 11:15:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!CypressClass methodsFor:'reading & writing'!
-
-readFrom:filename
- "Initializes the receiver from directory/file named 'filename'"
-
- ^ self shouldImplement
-!
-
-writeTo:directory notice:copyrightNotice
- "Writes the receiver into given 'directory' with
- copyrightNotice in each file"
-
- | dir |
-
- dir := directory asFilename.
- dir exists ifFalse: [ dir recursiveMakeDirectory ].
-
-
- self writePropertiesTo: directory notice: copyrightNotice.
- self writeMethodsTo: directory notice: copyrightNotice.
-
- "Modified (comment): / 11-09-2012 / 11:19:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
!CypressClass methodsFor:'reading & writing - private'!
writeMethodsTo:directory notice:copyrightNotice
--- a/CypressMethod.st Thu Sep 13 14:58:01 2012 +0000
+++ b/CypressMethod.st Mon Sep 17 18:05:30 2012 +0000
@@ -26,6 +26,10 @@
!CypressMethod methodsFor:'accessing'!
+category
+ ^ category
+!
+
klass
^ klass
!
@@ -44,6 +48,10 @@
^self name
"Created: / 11-09-2012 / 11:18:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+source
+ ^ source
! !
!CypressMethod methodsFor:'initialization'!
@@ -64,29 +72,6 @@
"Created: / 11-09-2012 / 00:05:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!CypressMethod methodsFor:'reading & writing'!
-
-readFrom:filename
- "Initializes the receiver from directory/file named 'filename'"
-
- ^ self shouldImplement
-!
-
-writeTo:filename notice:copyrightNotice
- "Writes the receiver into given 'directory' with
- copyrightNotice in each file"
-
- filename writingFileDo:[:s|
- s nextPut:$"; cr.
- s nextPutAll: 'notice: '; nextPutAll: copyrightNotice; cr.
- s nextPutAll: 'category: '; nextPutAll: category ? '* as yet unclassified *'; cr.
- s nextPut:$"; cr.
- s nextPutAll: source.
- ].
-
- "Modified: / 11-09-2012 / 11:36:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
!CypressMethod class methodsFor:'documentation'!
version_SVN
--- a/CypressPackage.st Thu Sep 13 14:58:01 2012 +0000
+++ b/CypressPackage.st Mon Sep 17 18:05:30 2012 +0000
@@ -47,6 +47,18 @@
"Created: / 10-09-2012 / 23:45:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+comment
+ ^ comment
+!
+
+comment:something
+ comment := something.
+!
+
+definition
+ ^ definition
+!
+
extensions
extensions isNil ifTrue:[
@@ -87,30 +99,6 @@
!CypressPackage methodsFor:'reading & writing'!
-readFrom:aStringOrFilename
- "Initializes the receiver from directory/file named 'filename'"
-
- | dir |
-
- dir := aStringOrFilename asFilename.
- self readPropertiesFrom: dir.
-
- classes := OrderedCollection new.
- extensions := OrderedCollection new.
-
- dir directoryContentsAsFilenamesDo:[:each|
- each suffix = 'class' ifTrue:[
- self halt.
- ].
- each suffix = 'extension' ifTrue:[
- self halt.
- ]
-
- ]
-
- "Modified: / 13-09-2012 / 15:52:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
writeTo: directory
| notice |
@@ -121,23 +109,6 @@
self writeTo: directory asFilename notice: notice.
"Created: / 11-09-2012 / 11:45:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-writeTo: directory notice:copyrightNotice
- "Writes the receiver into directory/file named 'filename'
- with given copyrightNotice"
-
- | dir notice |
-
- dir := directory asFilename.
- dir exists ifFalse: [ dir recursiveMakeDirectory ].
- notice := copyrightNotice isNil ifTrue:[definition legalCopyright] ifFalse:[copyrightNotice].
-
- self writePropertiesTo: dir notice: notice.
- self writeClassesTo: dir notice: notice.
- self writeExtensionsTo: dir notice: notice.
-
- "Modified: / 13-09-2012 / 14:47:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CypressPackage methodsFor:'reading & writing - private'!
--- a/CypressRepository.st Thu Sep 13 14:58:01 2012 +0000
+++ b/CypressRepository.st Mon Sep 17 18:05:30 2012 +0000
@@ -61,73 +61,36 @@
"Sets the root directory of a Cypress Repository"
directory := aStringOrFilename asFilename.
- self readPropertiesFrom: directory.
-
- "Modified: / 13-09-2012 / 14:49:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!CypressRepository methodsFor:'reading'!
+ self readProperties.
-read: packageName
- "Reads the package from repository. Returns package contents as changeset.
- To load that package into an image, send it #apply"
- ^self read: packageName as: nil
-
- "Created: / 13-09-2012 / 15:21:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 17-09-2012 / 18:49:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-read: packageName as: packageId
- "Reads the package from repository. Returns package contents as changeset.
- If packageId is not nil, then force package to be a 'packageId',
- otherwise, use package name specified in package properties.
- To load that package into an image, send it #apply"
+package
+ "Returns a CypressPackage which the receiver belongs to"
- | cpkgdir cpkg |
+ ^ self shouldImplement
+! !
+
+!CypressRepository methodsFor:'private'!
- cpkgdir := directory / packageName.
- cpkgdir exists ifFalse:[
- "Try add '.package'..."
- cpkgdir := directory / (packageName , '.package').
- cpkgdir exists ifFalse:[
- "Hmm...maybe a Smalltalk/X package Id, not a directory name,
- let's try"
- cpkgdir := directory / ((packageName asString copy replaceAll:$: with:$_; replaceAll:$/ with:$_) , '.package').
- cpkgdir exists ifFalse:[
- self error:'Cannot find package , ' , packageName, ' in repository'.
- ^nil.
- ]
- ]
+readProperties
+ | propertyFile |
+
+ propertyFile := directory / 'properties.ston'.
+ propertyFile exists ifTrue:[
+ properties := CypressJsonParser parse: propertyFile.
+ ^self
].
- cpkg := CypressPackage fromDirectory: cpkgdir.
- ^cpkg
-
- "Created: / 13-09-2012 / 15:37:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!CypressRepository methodsFor:'writing'!
-
-write: packageId
- ^self write: packageId as: nil
-
- "Created: / 13-09-2012 / 14:23:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
+ propertyFile := directory / 'properties.json'.
+ propertyFile exists ifTrue:[
+ properties := CypressJsonParser parse: propertyFile.
+ ^self
+ ].
+ properties := Dictionary new
-write: packageId as: packageNameOrNil
- "Writes a package into repository under given name. If
- 'packageNameOrNil' is nil, then default filename is used"
-
- | cpkg cpkgdir |
- cpkg := packageId asCypressPackage.
- cpkgdir := packageNameOrNil isNil ifTrue:[
- directory / ((cpkg name copy replaceAll:$: with:$_; replaceAll:$/ with:$_) , '.package').
- ] ifFalse:[
- directory / (packageNameOrNil endsWith:'.package') ifTrue:[packageNameOrNil] ifFalse:[packageNameOrNil , '.package'].
- ].
- directory exists ifFalse:[ directory recursiveMakeDirectory ].
- cpkg writeTo: cpkgdir notice: (properties at: 'copyrightLine' ifAbsent:[nil])
-
- "Created: / 13-09-2012 / 14:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 17-09-2012 / 18:49:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CypressRepository class methodsFor:'documentation'!
--- a/CypressWriter.st Thu Sep 13 14:58:01 2012 +0000
+++ b/CypressWriter.st Mon Sep 17 18:05:30 2012 +0000
@@ -1,7 +1,7 @@
"{ Package: 'stx:goodies/cypress' }"
-Object subclass:#CypressWriter
- instanceVariableNames:'repository'
+CypressAbstractWriter subclass:#CypressWriter
+ instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'Cypress-New-Reader & Writer'
@@ -14,8 +14,7 @@
An entry point to write a package in Cypress format.
Example:
- CypressWriter new
- repository: '~/Projects/SmalltalkX/repositories/git/cypress/implementations/smalltalkx/packages';
+ (CypressWriter onDirectory:'~/Projects/SmalltalkX/repositories/git/cypress/implementations/smalltalkx/packages');
write: #'stx:goodies/cypress'.
[author:]
@@ -26,18 +25,61 @@
[class variables:]
[see also:]
+ 'Cypress spec' - https://github.com/CampSmalltalk/Cypress/wiki
"
! !
-!CypressWriter methodsFor:'accessing'!
+!CypressWriter methodsFor:'writing-model'!
+
+writeClass: cclass to: directory
+
+ | clsdir |
-repository
- ^ repository
+ clsdir := directory / (self directoryNameForClass: cclass).
+ clsdir exists ifFalse:[ clsdir recursiveMakeDirectory ].
+
+ self
+ writeProperties: cclass properties to: clsdir;
+ writeComment: cclass comment to: clsdir;
+ writeMethods: cclass methods to: clsdir
+
+ "Created: / 17-09-2012 / 18:34:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-repository:aStringOrFilename
- repository := aStringOrFilename.
+writeMethod: cmethod to: directory
+ | mthfile |
+
+ mthfile := directory / (self fileNameForMethod: cmethod).
+
+ self writeProperties: cmethod properties to: directory.
+
+ mthfile writingFileDo:[:s|
+ s nextPut:$"; cr.
+ s nextPutAll: 'notice: '; nextPutAll: notice; cr.
+ s nextPutAll: 'category: '; nextPutAll: cmethod category ? '* as yet unclassified *'; cr.
+ s nextPut:$"; cr.
+ s nextPutAll: cmethod source.
+ ].
+
+ "Created: / 17-09-2012 / 18:35:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+writePackage: cpackage to: directory
+
+ | pkgdir |
+
+ notice isNil ifTrue:[ notice := cpackage definition legalCopyright ].
+ pkgdir := repository directory / (self directoryNameForPackage: cpackage).
+ pkgdir exists ifFalse:[ pkgdir recursiveMakeDirectory ].
+
+ self
+ writeProperties: cpackage properties to: pkgdir;
+ writeComment: cpackage comment to: pkgdir;
+ writeClasses: cpackage classes to: pkgdir;
+ writeExtensions: cpackage extensions to: pkgdir.
+
+ "Created: / 17-09-2012 / 17:44:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CypressWriter class methodsFor:'documentation'!
--- a/Make.proto Thu Sep 13 14:58:01 2012 +0000
+++ b/Make.proto Mon Sep 17 18:05:30 2012 +0000
@@ -180,6 +180,7 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)CypressAbstractWriter.$(O) CypressAbstractWriter.$(H): CypressAbstractWriter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)CypressDefinition.$(O) CypressDefinition.$(H): CypressDefinition.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)CypressDefinitionIndex.$(O) CypressDefinitionIndex.$(H): CypressDefinitionIndex.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)CypressDependencySorter.$(O) CypressDependencySorter.$(H): CypressDependencySorter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -194,7 +195,6 @@
$(OUTDIR)CypressPatchOperation.$(O) CypressPatchOperation.$(H): CypressPatchOperation.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)CypressSnapshot.$(O) CypressSnapshot.$(H): CypressSnapshot.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)CypressStructure.$(O) CypressStructure.$(H): CypressStructure.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)CypressWriter.$(O) CypressWriter.$(H): CypressWriter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)stx_goodies_cypress.$(O) stx_goodies_cypress.$(H): stx_goodies_cypress.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)CypressAddition.$(O) CypressAddition.$(H): CypressAddition.st $(INCLUDE_TOP)/stx/goodies/cypress/CypressPatchOperation.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)CypressClass.$(O) CypressClass.$(H): CypressClass.st $(INCLUDE_TOP)/stx/goodies/cypress/CypressModel.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -208,6 +208,7 @@
$(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)CypressRepository.$(O) CypressRepository.$(H): CypressRepository.st $(INCLUDE_TOP)/stx/goodies/cypress/CypressModel.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)CypressWriter.$(O) CypressWriter.$(H): CypressWriter.st $(INCLUDE_TOP)/stx/goodies/cypress/CypressAbstractWriter.$(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) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/libbasic/PackageId.$(H) $(INCLUDE_TOP)/stx/libbasic/Symbol.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/Make.spec Thu Sep 13 14:58:01 2012 +0000
+++ b/Make.spec Mon Sep 17 18:05:30 2012 +0000
@@ -73,11 +73,12 @@
CypressPackageStructure \
CypressRemoval \
CypressModel \
- CypressWriter \
CypressClass \
CypressMethod \
CypressPackage \
CypressRepository \
+ CypressAbstractWriter \
+ CypressWriter \
@@ -106,11 +107,12 @@
$(OUTDIR)CypressPackageStructure.$(O) \
$(OUTDIR)CypressRemoval.$(O) \
$(OUTDIR)CypressModel.$(O) \
- $(OUTDIR)CypressWriter.$(O) \
$(OUTDIR)CypressClass.$(O) \
$(OUTDIR)CypressMethod.$(O) \
$(OUTDIR)CypressPackage.$(O) \
$(OUTDIR)CypressRepository.$(O) \
+ $(OUTDIR)CypressAbstractWriter.$(O) \
+ $(OUTDIR)CypressWriter.$(O) \
$(OUTDIR)extensions.$(O) \
--- a/abbrev.stc Thu Sep 13 14:58:01 2012 +0000
+++ b/abbrev.stc Mon Sep 17 18:05:30 2012 +0000
@@ -30,8 +30,9 @@
CypressSnapshotTest CypressSnapshotTest stx:goodies/cypress 'Cypress-Tests' 1
CypressStructureTest CypressStructureTest stx:goodies/cypress 'Cypress-Tests' 1
CypressModel CypressModel stx:goodies/cypress 'Cypress-New-Model' 0
-CypressWriter CypressWriter stx:goodies/cypress 'Cypress-New-Reader & Writer' 0
CypressClass CypressClass stx:goodies/cypress 'Cypress-New-Model' 0
CypressMethod CypressMethod stx:goodies/cypress 'Cypress-New-Model' 0
CypressPackage CypressPackage stx:goodies/cypress 'Cypress-New-Model' 0
CypressRepository CypressRepository stx:goodies/cypress 'Cypress-New-Model' 0
+CypressAbstractWriter CypressAbstractWriter stx:goodies/cypress 'Cypress-New-Reader & Writer' 0
+CypressWriter CypressWriter stx:goodies/cypress 'Cypress-New-Reader & Writer' 0
--- a/bc.mak Thu Sep 13 14:58:01 2012 +0000
+++ b/bc.mak Mon Sep 17 18:05:30 2012 +0000
@@ -116,6 +116,7 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)CypressAbstractWriter.$(O) CypressAbstractWriter.$(H): CypressAbstractWriter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)CypressDefinition.$(O) CypressDefinition.$(H): CypressDefinition.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)CypressDefinitionIndex.$(O) CypressDefinitionIndex.$(H): CypressDefinitionIndex.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)CypressDependencySorter.$(O) CypressDependencySorter.$(H): CypressDependencySorter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -130,7 +131,6 @@
$(OUTDIR)CypressPatchOperation.$(O) CypressPatchOperation.$(H): CypressPatchOperation.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)CypressSnapshot.$(O) CypressSnapshot.$(H): CypressSnapshot.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)CypressStructure.$(O) CypressStructure.$(H): CypressStructure.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)CypressWriter.$(O) CypressWriter.$(H): CypressWriter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)stx_goodies_cypress.$(O) stx_goodies_cypress.$(H): stx_goodies_cypress.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)CypressAddition.$(O) CypressAddition.$(H): CypressAddition.st $(INCLUDE_TOP)\stx\goodies\cypress\CypressPatchOperation.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)CypressClass.$(O) CypressClass.$(H): CypressClass.st $(INCLUDE_TOP)\stx\goodies\cypress\CypressModel.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -144,6 +144,7 @@
$(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)CypressRepository.$(O) CypressRepository.$(H): CypressRepository.st $(INCLUDE_TOP)\stx\goodies\cypress\CypressModel.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)CypressWriter.$(O) CypressWriter.$(H): CypressWriter.st $(INCLUDE_TOP)\stx\goodies\cypress\CypressAbstractWriter.$(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) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\PackageId.$(H) $(INCLUDE_TOP)\stx\libbasic\Symbol.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/cypress.rc Thu Sep 13 14:58:01 2012 +0000
+++ b/cypress.rc Mon Sep 17 18:05:30 2012 +0000
@@ -3,7 +3,7 @@
// automagically generated from the projectDefinition: stx_goodies_cypress.
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 6,2,13,13
+ FILEVERSION 6,2,14,14
PRODUCTVERSION 6,2,3,1
#if (__BORLANDC__)
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
BEGIN
VALUE "CompanyName", "Jan Vrany\0"
VALUE "FileDescription", "Cypress Package Format Reader/Writer (LIB)\0"
- VALUE "FileVersion", "6.2.13.13\0"
+ VALUE "FileVersion", "6.2.14.14\0"
VALUE "InternalName", "stx:goodies/cypress\0"
VALUE "LegalCopyright", "Copyright Jan Vrany & Dale Henrichs 2012\0"
VALUE "ProductName", "Cypress\0"
VALUE "ProductVersion", "6.2.3.1\0"
- VALUE "ProductDate", "Thu, 13 Sep 2012 14:57:42 GMT\0"
+ VALUE "ProductDate", "Mon, 17 Sep 2012 18:06:18 GMT\0"
END
END
--- a/libInit.cc Thu Sep 13 14:58:01 2012 +0000
+++ b/libInit.cc Mon Sep 17 18:05:30 2012 +0000
@@ -27,6 +27,7 @@
void _libstx_goodies_cypress_Init(pass, __pRT__, snd)
OBJ snd; struct __vmData__ *__pRT__; {
__BEGIN_PACKAGE2__("libstx_goodies_cypress", _libstx_goodies_cypress_Init, "stx:goodies/cypress");
+_CypressAbstractWriter_Init(pass,__pRT__,snd);
_CypressDefinition_Init(pass,__pRT__,snd);
_CypressDefinitionIndex_Init(pass,__pRT__,snd);
_CypressDependencySorter_Init(pass,__pRT__,snd);
@@ -41,7 +42,6 @@
_CypressPatchOperation_Init(pass,__pRT__,snd);
_CypressSnapshot_Init(pass,__pRT__,snd);
_CypressStructure_Init(pass,__pRT__,snd);
-_CypressWriter_Init(pass,__pRT__,snd);
_stx_137goodies_137cypress_Init(pass,__pRT__,snd);
_CypressAddition_Init(pass,__pRT__,snd);
_CypressClass_Init(pass,__pRT__,snd);
@@ -55,6 +55,7 @@
_CypressPackageStructure_Init(pass,__pRT__,snd);
_CypressRemoval_Init(pass,__pRT__,snd);
_CypressRepository_Init(pass,__pRT__,snd);
+_CypressWriter_Init(pass,__pRT__,snd);
_stx_137goodies_137cypress_extensions_Init(pass,__pRT__,snd);
__END_PACKAGE__();
--- a/stx_goodies_cypress.st Thu Sep 13 14:58:01 2012 +0000
+++ b/stx_goodies_cypress.st Mon Sep 17 18:05:30 2012 +0000
@@ -38,9 +38,9 @@
#'stx:goodies/simpleServices'
#'stx:goodies/sunit' "TestCase - superclass of CypressAbstractTest "
#'stx:goodies/webServer'
- #'stx:libbasic' "ArithmeticValue - superclass of extended Number "
+ #'stx:libbasic' "ExecutableFunction - superclass of extended CompiledCode "
#'stx:libbasic2'
- #'stx:libbasic3' "ClassDefinitionChange - referenced by CypressClassStructure>>changesOn: "
+ #'stx:libbasic3' "MethodDefinitionChange - referenced by CypressMethodStructure>>changesOn: "
#'stx:libcomp' "Parser - referenced by CypressPackageReader>>readMethodStructureFor:in:methodProperties: "
#'stx:libcompat'
#'stx:libdb/libodbc'
@@ -94,11 +94,12 @@
(CypressSnapshotTest autoload)
(CypressStructureTest autoload)
CypressModel
- CypressWriter
CypressClass
CypressMethod
CypressPackage
CypressRepository
+ CypressAbstractWriter
+ CypressWriter
)
!