CypressWriter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 18 Sep 2012 13:49:14 +0000
changeset 20 cdf3ee8ceeaa
parent 16 75ff9255068a
permissions -rw-r--r--
- fixes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/cypress' }"
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
     3
CypressAbstractWriter subclass:#CypressWriter
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
     4
	instanceVariableNames:''
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'Cypress-New-Reader & Writer'
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    10
!CypressWriter class methodsFor:'documentation'!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    11
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    12
documentation
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    13
"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    14
    An entry point to write a package in Cypress format.
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    15
    Example:
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    16
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    17
    (CypressWriter onDirectory:'~/Projects/SmalltalkX/repositories/git/cypress/implementations/smalltalkx/packages');
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    18
        write: #'stx:goodies/cypress'.
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    19
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    20
    [author:]
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    21
        Jan Vrany <jan.vrany@fit.cvut.cz>
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    22
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    23
    [instance variables:]
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    24
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    25
    [class variables:]
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    26
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    27
    [see also:]
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    28
        'Cypress spec' - https://github.com/CampSmalltalk/Cypress/wiki
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    29
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    30
"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    31
! !
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    32
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    33
!CypressWriter methodsFor:'writing-model'!
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    34
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    35
writeClass: cclass as: name to: directory
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    36
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    37
    | clsdir |
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    38
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    39
    clsdir := directory / name.
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    40
    clsdir exists ifFalse:[ clsdir recursiveMakeDirectory ].
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    41
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    42
    self 
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    43
        writeProperties: cclass properties to: clsdir;
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    44
        writeComment: cclass comment to: clsdir;
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    45
        writeMethods: cclass methods to: clsdir
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    46
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    47
    "Created: / 17-09-2012 / 22:18:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    48
!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    49
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    50
writeMethod: cmethod as: name to: directory
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    51
    | mthfile |
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    52
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    53
    mthfile := directory / name.
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    54
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    55
    self writeProperties: cmethod properties to: directory.
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    56
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    57
    mthfile writingFileDo:[:s|
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    58
        s nextPut:$"; cr.
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    59
        s nextPutAll: 'notice: '; nextPutAll: notice; cr.
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    60
        s nextPutAll: 'category: '; nextPutAll: cmethod category ? '* as yet unclassified *'; cr.
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    61
        s nextPut:$"; cr.
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    62
        s nextPutAll: cmethod source.
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    63
    ].
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    64
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    65
    "Created: / 17-09-2012 / 22:21:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    66
!
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    67
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    68
writePackage: cpackage as: name to: directory
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    69
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    70
    | pkgdir |
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    71
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    72
    notice isNil ifTrue:[ notice := cpackage definition legalCopyright ].
16
75ff9255068a - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    73
    pkgdir := directory / name.
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    74
    pkgdir exists ifFalse:[ pkgdir recursiveMakeDirectory ].
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    75
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    76
    self 
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    77
        writeProperties: cpackage properties to: pkgdir;
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    78
        writeComment: cpackage comment to: pkgdir;
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    79
        writeClasses: cpackage classes to: pkgdir;
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    80
        writeExtensions: cpackage extensions to: pkgdir.
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    81
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    82
    "Created: / 17-09-2012 / 22:17:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    83
! !
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!CypressWriter class methodsFor:'documentation'!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
version_SVN
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    ^ '$Id::                                                                                                                        $'
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
! !