1 "{ Package: 'stx:goodies/metacello/core' }" |
1 "{ Package: 'stx:goodies/metacello/core' }" |
2 |
2 |
3 Object subclass:#MetacelloProject |
3 Object subclass:#MetacelloProject |
4 instanceVariableNames:'versionMap symbolicVersionMap errorMap loader loaderClass |
4 instanceVariableNames:'versionMap symbolicVersionMap loader loaderClass loadType |
5 loadType configuration projectAttributes versionNumberClass' |
5 configuration projectAttributes' |
6 classVariableNames:'' |
6 classVariableNames:'' |
7 poolDictionaries:'' |
7 poolDictionaries:'' |
8 category:'Metacello-Core-Model' |
8 category:'Metacello-Core-Model' |
9 ! |
9 ! |
10 |
10 |
143 excludeFromLatestVersion |
128 excludeFromLatestVersion |
144 |
129 |
145 ^#(development broken baseline) |
130 ^#(development broken baseline) |
146 ! |
131 ! |
147 |
132 |
148 lookupVersion: aVersionString ifAbsent: aBlock |
|
149 "please use version:...this is a private method" |
|
150 |
|
151 ^ self map |
|
152 at: aVersionString |
|
153 ifAbsent: [ |
|
154 (MetacelloVersionDefinitionError project: self project versionString: aVersionString) |
|
155 exception: (self errorMap at: aVersionString ifAbsent: [ ^ aBlock value ]); |
|
156 signal ] |
|
157 ! |
|
158 |
|
159 platformAttributes |
133 platformAttributes |
160 |
134 |
161 ^self projectPlatformAttributes |
135 ^self projectPlatformAttributes |
162 ! |
136 ! |
163 |
137 |
189 sortedAndFilteredVersions |
163 sortedAndFilteredVersions |
190 |
164 |
191 ^(self map values asArray sort: [:a :b | a >= b ]) select: [:vrsn | (#(broken baseline) includes: vrsn blessing) not ]. |
165 ^(self map values asArray sort: [:a :b | a >= b ]) select: [:vrsn | (#(broken baseline) includes: vrsn blessing) not ]. |
192 ! ! |
166 ! ! |
193 |
167 |
194 !MetacelloProject methodsFor:'scripting'! |
|
195 |
|
196 projectForScriptEngine: aMetacelloScriptEngine |
|
197 ^ self projectForScriptEngine: aMetacelloScriptEngine unconditionalLoad: false |
|
198 ! |
|
199 |
|
200 projectForScriptEngine: aMetacelloScriptEngine unconditionalLoad: aBool |
|
201 ^ self subclassResponsibility |
|
202 ! ! |
|
203 |
|
204 !MetacelloProject methodsFor:'spec classes'! |
168 !MetacelloProject methodsFor:'spec classes'! |
205 |
|
206 baselineOfProjectSpec |
|
207 ^ self baselineOfProjectSpecClass for: self |
|
208 ! |
|
209 |
|
210 baselineOfProjectSpecClass |
|
211 ^ self subclassResponsibility |
|
212 ! |
|
213 |
|
214 baselineOfVersionSpecClass |
|
215 ^ self subclassResponsibility |
|
216 ! |
|
217 |
|
218 configurationOfProjectSpec |
|
219 ^ self configurationOfProjectSpecClass for: self |
|
220 ! |
|
221 |
|
222 configurationOfProjectSpecClass |
|
223 ^ self subclassResponsibility |
|
224 ! |
|
225 |
169 |
226 defaultLoaderClass |
170 defaultLoaderClass |
227 |
171 |
228 ^MetacelloSpecLoader |
172 ^MetacelloSpecLoader |
229 ! |
173 ! |
257 loaderClass: aMetacelloSpecLoader |
201 loaderClass: aMetacelloSpecLoader |
258 |
202 |
259 loaderClass := aMetacelloSpecLoader |
203 loaderClass := aMetacelloSpecLoader |
260 ! |
204 ! |
261 |
205 |
262 packageSpec |
|
263 |
|
264 ^self packageSpecClass for: self |
|
265 |
|
266 "Created: / 05-09-2012 / 19:23:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
267 ! |
|
268 |
|
269 packageSpecClass |
|
270 |
|
271 "JV@2012-09-05: Should be |
|
272 |
|
273 ^MetacelloPackageSpec |
|
274 |
|
275 but MetacelloPackageSpec belongs to MetacelloMC. I would suggest to |
|
276 create MetacelloPackageSpec in MetacelloCore and add MetacelloMCPackageSpec |
|
277 to MetacelloMC to keep it consistent" |
|
278 |
|
279 self subclassResponsibility |
|
280 |
|
281 "Created: / 05-09-2012 / 19:26:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
282 ! |
|
283 |
|
284 packagesSpec |
206 packagesSpec |
285 |
207 |
286 ^self packagesSpecClass for: self |
208 ^self packagesSpecClass for: self |
287 ! |
209 ! |
288 |
210 |
476 |
399 |
477 ^self symbolicVersionMap keys asArray sort: [:a :b | a <= b ] |
400 ^self symbolicVersionMap keys asArray sort: [:a :b | a <= b ] |
478 ! |
401 ! |
479 |
402 |
480 version: aVersionString |
403 version: aVersionString |
481 | vrsn | |
404 | vrsn | |
482 aVersionString isSymbol |
405 aVersionString isSymbol |
483 ifTrue: [ |
406 ifTrue: [ |
484 | symbolicVersionString | |
407 | symbolicVersionString | |
485 symbolicVersionString := self symbolicVersionMap |
408 symbolicVersionString := self symbolicVersionMap |
486 at: aVersionString |
409 at: aVersionString |
487 ifAbsent: [ (MetacelloSymbolicVersionDoesNotExistError project: self project versionString: aVersionString) signal ]. |
410 ifAbsent: [ (MetacelloSymbolicVersionDoesNotExistError project: self project versionString: aVersionString) signal ]. |
488 symbolicVersionString == #'notDefined' |
411 symbolicVersionString == #notDefined |
489 ifTrue: [ (MetacelloSymbolicVersionNotDefinedError project: self project versionString: aVersionString) signal ]. |
412 ifTrue: [ (MetacelloSymbolicVersionNotDefinedError project: self project versionString: aVersionString) signal ]. |
490 ^ self |
413 ^ self map |
491 lookupVersion: symbolicVersionString |
414 at: symbolicVersionString |
492 ifAbsent: [ (MetacelloSymbolicVersionDoesNotExistError project: self project versionString: symbolicVersionString) signal ] ]. |
415 ifAbsent: [ (MetacelloSymbolicVersionDoesNotExistError project: self project versionString: symbolicVersionString) signal ] ]. |
493 ^ self |
416 ^ self map |
494 lookupVersion: aVersionString |
417 at: aVersionString |
495 ifAbsent: [ (MetacelloVersionDoesNotExistError project: self project versionString: aVersionString) signal ] |
418 ifAbsent: [ (MetacelloVersionDoesNotExistError project: self project versionString: aVersionString) signal ] |
496 ! |
419 ! |
497 |
420 |
498 version: aVersionString ifAbsent: aBlock |
421 version: aVersionString ifAbsent: aBlock |
499 |
422 |
500 ^[ self version: aVersionString ] on: MetacelloVersionDoesNotExistError do: [:ex | aBlock value ]. |
423 ^[ self version: aVersionString ] on: MetacelloVersionDoesNotExistError do: [:ex | aBlock value ]. |
501 ! |
|
502 |
|
503 versionNumberClass |
|
504 versionNumberClass ifNil: [ versionNumberClass := MetacelloVersionNumber ]. |
|
505 ^ versionNumberClass |
|
506 ! |
|
507 |
|
508 versionNumberClass: aClass |
|
509 versionNumberClass := aClass |
|
510 ! |
424 ! |
511 |
425 |
512 versions |
426 versions |
513 |
427 |
514 ^self map values asArray sort: [:a :b | a <= b ] |
428 ^self map values asArray sort: [:a :b | a <= b ] |