CypressPackage.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 17 Sep 2012 21:34:55 +0000
changeset 15 31a33727c629
parent 14 d5b81c30785e
child 17 d387df3d4e46
permissions -rw-r--r--
- Getting rid of old Cypress implementation. - Reader does not work yet
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
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
CypressModel subclass:#CypressPackage
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:'definition comment classes extensions'
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-Model'
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
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!CypressPackage class methodsFor:'instance creation'!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    13
fromDirectory: directory
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    14
    "Reads a CypressPackage from given directory"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    15
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    16
    ^self new initializeFromDirectory: directory
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    17
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    18
    "Created: / 13-09-2012 / 15:34:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    19
!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    20
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
fromPackage: packageId
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    "Creates new CypressPackage for given package id"
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    ^self fromPackageDefinition: (ProjectDefinition definitionClassForPackage: packageId createIfAbsent: true).
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "Created: / 10-09-2012 / 23:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
fromPackageDefinition: projectDefinition
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    ^self new initializeFromPackageDefinition: projectDefinition
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    "Created: / 10-09-2012 / 23:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
! !
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
!CypressPackage methodsFor:'accessing'!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
classes
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    classes isNil ifTrue:[
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
        classes := definition classes collect:[:cls|
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
            CypressClass fromClass: cls.
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
        ]
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    ].
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    ^classes
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Created: / 10-09-2012 / 23:45:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    50
comment
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    51
    ^ comment
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    52
!
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    53
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    54
comment:something
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    55
    comment := something.
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
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    58
definition
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    59
    ^ definition
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    60
!
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    61
12
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    62
extensions
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    63
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    64
    extensions isNil ifTrue:[
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    65
        extensions := definition extensions collect:[:mthd|
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    66
            CypressMethod fromMethod: mthd
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    67
        ]
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    68
    ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    69
    ^extensions
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    70
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    71
    "Created: / 11-09-2012 / 11:03:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
! !
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
!CypressPackage methodsFor:'initialization'!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    76
initializeFromDirectory: directory
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    77
    self readFrom: directory
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    78
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    79
    "Created: / 13-09-2012 / 15:35:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    80
!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    81
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
initializeFromPackageDefinition: projectDefinition
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    definition := projectDefinition.
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    84
    name := projectDefinition package asString.
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    properties := Dictionary new.
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
    properties 
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
        at: '_cypress_copyright' put: (definition legalCopyright);
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
        at: '_stx_name' put: name.
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    "Created: / 10-09-2012 / 23:35:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
! !
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
!CypressPackage methodsFor:'reading & writing'!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
12
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    96
writeTo: directory
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    97
    | notice |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    98
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    99
    notice := definition legalCopyright.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   100
    (self properties includesKey:'licenseFile') ifTrue:[
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   101
        notice := notice , ' (for license, see file ' , (self properties at:'licenseFile') , ')'.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   102
    ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   103
    self writeTo: directory asFilename notice: notice.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   104
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   105
    "Created: / 11-09-2012 / 11:45:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   106
! !
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   107
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   108
!CypressPackage methodsFor:'reading & writing - private'!
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   109
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   110
writeClassesTo: directory notice:copyrightNotice
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   111
    "Writes my classes  into 'directory' with given copyrightNotice"
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   112
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   113
    | obsolete |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   114
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   115
    " collect possibly obsolete .class directories "
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   116
    obsolete := Set new.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   117
    directory directoryContentsAsFilenamesDo:[:each|
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   118
        | suffix |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   119
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   120
        each suffix = 'class' ifTrue:[
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   121
            obsolete add: each.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   122
        ]
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   123
    ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   124
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   125
    " write classes... "
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   126
    self classes do:[:cpsCls|
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   127
        | cpsClsDir |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   128
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   129
        cpsClsDir := directory / ((cpsCls name copyReplaceAll: $: with: $_) , '.class').
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   130
        obsolete remove: cpsClsDir ifAbsent:[].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   131
        cpsCls writeTo: cpsClsDir notice:copyrightNotice
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   132
    ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   133
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   134
    " wipe out obsolete .class directories "
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   135
    obsolete do:[:each|
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   136
        each recursiveRemove.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   137
    ].
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
12
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   139
    "Created: / 11-09-2012 / 11:10:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   140
!
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   141
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   142
writeExtensionsTo: directory notice:copyrightNotice
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   143
    "Writes extensions into 'directory'/file with given copyrightNotice"
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   144
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   145
    |  obsolete extensionsPerClass |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   146
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   147
    " group extensions by class... "
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   148
    extensionsPerClass := Dictionary new.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   149
    self extensions do:[:cpsMthd |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   150
        (extensionsPerClass at: cpsMthd klass ifAbsentPut: [ Set new ])
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   151
            add: cpsMthd.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   152
    ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   153
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   154
    " collect possibly obsolete .extension directories "
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   155
    obsolete := Set new.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   156
    directory directoryContentsAsFilenamesDo:[:each|
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   157
        | suffix |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   158
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   159
        each suffix = 'extension' ifTrue:[
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   160
            obsolete add: each.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   161
        ]
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   162
    ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   163
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   164
    " write individual extensions... "
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   165
    extensionsPerClass keysAndValuesDo:[:name :cpsMthds |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   166
        | cpsClsDir cpsCls |
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   167
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   168
        cpsClsDir := directory / ((name copyReplaceAll: $: with: $_) , '.extension').
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   169
        obsolete remove: cpsClsDir ifAbsent:[].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   170
        cpsClsDir exists ifFalse: [ cpsClsDir makeDirectory ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   171
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   172
        " Here we create fake CypressClass with only extension methods - this
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   173
          way I can reuse logic allready coded in CypressClass. "
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   174
        cpsCls := CypressClass new.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   175
        cpsCls new initializeWithMethods: cpsMthds.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   176
        cpsCls writeMethodsTo: cpsClsDir notice:copyrightNotice.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   177
    ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   178
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   179
    " wipe out obsolete .class directories "
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   180
    obsolete do:[:each|
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   181
        each recursiveRemove.
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   182
    ].
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   183
ec118792047a - Package writing rewritten to use new model. Writes package according to recent spec.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
   184
    "Created: / 11-09-2012 / 11:12:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
! !
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
!CypressPackage class methodsFor:'documentation'!
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
version_SVN
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
    ^ '$Id::                                                                                                                        $'
333528cd629a - Cypress refactoring - towards a lot simpler code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
! !