1
|
1 |
"{ Package: 'stx:goodies/metacello' }"
|
|
2 |
|
|
3 |
MetacelloAbstractPackageSpec subclass:#MetacelloGroupSpec
|
|
4 |
instanceVariableNames:''
|
|
5 |
classVariableNames:''
|
|
6 |
poolDictionaries:''
|
|
7 |
category:'Metacello-Core-Specs'
|
|
8 |
!
|
|
9 |
|
|
10 |
|
|
11 |
!MetacelloGroupSpec methodsFor:'accessing'!
|
|
12 |
|
|
13 |
answers: aListOfPairs
|
|
14 |
|
|
15 |
self shouldNotImplement
|
|
16 |
!
|
|
17 |
|
|
18 |
requires: aCollection
|
|
19 |
|
|
20 |
self shouldNotImplement
|
|
21 |
! !
|
|
22 |
|
|
23 |
!MetacelloGroupSpec methodsFor:'printing'!
|
|
24 |
|
|
25 |
configMethodCascadeOn: aStream member: aMember last: lastCascade indent: indent
|
|
26 |
|
|
27 |
aMember methodUpdateSelector == #remove:
|
|
28 |
ifTrue: [ aStream nextPutAll: 'removeGroup: ', self name printString. ]
|
|
29 |
ifFalse: [
|
|
30 |
aStream
|
|
31 |
nextPutAll: 'group: ', self name printString;
|
|
32 |
space;
|
|
33 |
nextPutAll: aMember methodUpdateSelector asString, ' #('.
|
|
34 |
self includes do: [:str | aStream nextPutAll: str printString, ' ' ].
|
|
35 |
aStream nextPut: $) ].
|
|
36 |
lastCascade
|
|
37 |
ifTrue: [ aStream nextPut: $. ]
|
|
38 |
ifFalse: [ aStream nextPut: $;; cr ].
|
|
39 |
!
|
|
40 |
|
|
41 |
configMethodOn: aStream indent: indent
|
|
42 |
|
|
43 |
aStream
|
|
44 |
tab: indent;
|
|
45 |
nextPutAll: 'spec '; cr;
|
|
46 |
tab: indent + 1;
|
|
47 |
nextPutAll: 'name: ', self name printString, ';'.
|
|
48 |
self configMethodBodyOn: aStream hasName: true cascading: false indent: indent + 1.
|
|
49 |
aStream nextPut: $.
|
|
50 |
! !
|
|
51 |
|
|
52 |
!MetacelloGroupSpec methodsFor:'visiting'!
|
|
53 |
|
|
54 |
projectDo: projectBlock packageDo: packageBlock groupDo: groupBlock
|
|
55 |
|
|
56 |
groupBlock value: self
|
|
57 |
! !
|
|
58 |
|
|
59 |
!MetacelloGroupSpec class methodsFor:'documentation'!
|
|
60 |
|
|
61 |
version_SVN
|
|
62 |
^ '$Id:: $'
|
|
63 |
! !
|