--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/core/extensions.st Mon Sep 10 21:28:05 2012 +0000
@@ -0,0 +1,534 @@
+"{ Package: 'stx:goodies/metacello/core' }"!
+
+!Block methodsFor:'*metacello-core-scripting'!
+
+execute: projectSpecBlock against: aScriptExecutor
+ aScriptExecutor executeBlock: self do: projectSpecBlock
+! !
+
+!Block methodsFor:'*metacello-core'!
+
+setAuthorInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setAuthorWithBlock: self
+! !
+
+!Block methodsFor:'*metacello-core'!
+
+setBaseline: aString withInMetacelloConfig: aMetacelloConfig
+ aMetacelloConfig setBaseline: aString withBlock: self
+! !
+
+!Block methodsFor:'*metacello-core'!
+
+setBlessingInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setBlessingWithBlock: self
+! !
+
+!Block methodsFor:'*metacello-core'!
+
+setConfiguration: aString withInMetacelloConfig: aMetacelloConfig
+ aMetacelloConfig setConfiguration: aString withBlock: self
+! !
+
+!Block methodsFor:'*metacello-core'!
+
+setDescriptionInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setDescriptionWithBlock: self
+! !
+
+!Block methodsFor:'*metacello-core'!
+
+setPackage: aString withInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setPackage: aString withBlock: self
+! !
+
+!Block methodsFor:'*metacello-core'!
+
+setProject: aString withInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setProject: aString withBlock: self
+! !
+
+!Block methodsFor:'*metacello-core'!
+
+setTimestampInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setTimestampWithBlock: self
+! !
+
+!Collection methodsFor:'*metacello-core'!
+
+addToMetacelloPackages: aMetacelloPackagesSpec
+
+ self do: [:each | each addToMetacelloPackages: aMetacelloPackagesSpec ]
+! !
+
+!Collection methodsFor:'*metacello-core-scripting'!
+
+execute: projectSpecBlock against: aScriptExecutor
+ aScriptExecutor executeCollection: self do: projectSpecBlock
+! !
+
+!Collection methodsFor:'*metacello-core'!
+
+mergeIntoMetacelloPackages: aMetacelloPackagesSpec
+
+ self do: [:each | each mergeIntoMetacelloPackages: aMetacelloPackagesSpec ]
+! !
+
+!Collection methodsFor:'*metacello-core'!
+
+removeFromMetacelloPackages: aMetacelloPackagesSpec
+
+ self do: [:each | each removeFromMetacelloPackages: aMetacelloPackagesSpec ]
+! !
+
+!Collection methodsFor:'*metacello-core'!
+
+setIncludesInMetacelloPackage: aMetacelloPackageSpec
+
+ aMetacelloPackageSpec setIncludes: self asArray.
+! !
+
+!Collection methodsFor:'*metacello-core'!
+
+setLoadsInMetacelloProject: aMetacelloPackageSpec
+
+ aMetacelloPackageSpec setLoads: self asArray.
+! !
+
+!Collection methodsFor:'*metacello-core'!
+
+setRequiresInMetacelloPackage: aMetacelloPackageSpec
+
+ aMetacelloPackageSpec setRequires: self asArray.
+! !
+
+!Integer methodsFor:'*metacello-core'!
+
+metacelloIntegerLessThanSelf: anInteger
+
+ ^anInteger < self
+! !
+
+!Integer methodsFor:'*metacello-core'!
+
+metacelloSemanticIntegerLessThanSelf: anInteger
+ ^ anInteger < self
+! !
+
+!Integer methodsFor:'*metacello-core'!
+
+metacelloSemanticStringLessThanSelf: aString
+ "string version components are always '<' integer component"
+
+ ^ true
+! !
+
+!Integer methodsFor:'*metacello-core'!
+
+metacelloSemanticVersionComponentLessThan: aMetacelloVersonComponent
+ ^ aMetacelloVersonComponent metacelloSemanticIntegerLessThanSelf: self
+! !
+
+!Integer methodsFor:'*metacello-core'!
+
+metacelloStringLessThanSelf: aString
+ "string version components are always '<' integer component"
+
+ ^true
+! !
+
+!Integer methodsFor:'*metacello-core'!
+
+metacelloVersionComponentLessThan: aMetacelloVersonComponent
+
+ ^aMetacelloVersonComponent metacelloIntegerLessThanSelf: self
+! !
+
+!Object methodsFor:'*metacello-core'!
+
+metacelloIntegerLessThanSelf: anInteger
+
+ ^self error: 'Invalid Metacello verson component - should be String or Integer.'
+! !
+
+!Object methodsFor:'*metacello-core'!
+
+metacelloSemanticIntegerLessThanSelf: anInteger
+ ^ self error: 'Invalid Metacello verson component - should be String or Integer.'
+! !
+
+!Object methodsFor:'*metacello-core'!
+
+metacelloSemanticStringLessThanSelf: anInteger
+ ^ self error: 'Invalid Metacello verson component - should be String or Integer.'
+! !
+
+!Object methodsFor:'*metacello-core'!
+
+metacelloSemanticVersionComponentLessThan: aMetacelloVersonComponent
+ ^ self error: 'Invalid Metacello verson component - should be String or Integer.'
+! !
+
+!Object methodsFor:'*metacello-core'!
+
+metacelloStringLessThanSelf: anInteger
+
+ ^self error: 'Invalid Metacello verson component - should be String or Integer.'
+! !
+
+!Object methodsFor:'*metacello-core'!
+
+metacelloVersionComponentLessThan: aMetacelloVersonComponent
+
+ ^self error: 'Invalid Metacello verson component - should be String or Integer.'
+! !
+
+!String methodsFor:'*metacello-core'!
+
+addToMetacelloPackages: aMetacelloPackagesSpec
+
+ | spec |
+ spec :=
+ (aMetacelloPackagesSpec project packageSpec)
+ file: self;
+ yourself.
+ aMetacelloPackagesSpec addMember:
+ (aMetacelloPackagesSpec addMember
+ name: spec name;
+ spec: spec;
+ yourself)
+! !
+
+!String methodsFor:'*metacello-core'!
+
+asMetacelloSemanticVersionNumber
+ ^ MetacelloSemanticVersionNumber fromString: self
+! !
+
+!String methodsFor:'*metacello-core'!
+
+asMetacelloVersionNumber
+
+ ^MetacelloVersionNumber fromString: self
+! !
+
+!String methodsFor:'*metacello-core-scripting'!
+
+execute: projectSpecBlock against: aScriptExecutor
+ aScriptExecutor executeString: self do: projectSpecBlock
+! !
+
+!String methodsFor:'*metacello-core'!
+
+mergeIntoMetacelloPackages: aMetacelloPackagesSpec
+
+ | spec |
+ spec :=
+ (aMetacelloPackagesSpec project packageSpec)
+ file: self;
+ yourself.
+ aMetacelloPackagesSpec addMember:
+ (aMetacelloPackagesSpec mergeMember
+ name: spec name;
+ spec: spec;
+ yourself)
+! !
+
+!String methodsFor:'*metacello-core-version comparison'!
+
+metacelloIntegerLessThanSelf: anInteger
+ "integer version components are always '>' string component"
+
+ ^false
+! !
+
+!String methodsFor:'*metacello-core-version comparison'!
+
+metacelloSemanticIntegerLessThanSelf: anInteger
+ "integer version components are always '>' string component"
+
+ ^ true
+! !
+
+!String methodsFor:'*metacello-core-version comparison'!
+
+metacelloSemanticStringLessThanSelf: aString
+ ^ aString < self
+! !
+
+!String methodsFor:'*metacello-core-version comparison'!
+
+metacelloSemanticVersionComponentLessThan: aMetacelloVersonComponent
+ ^ aMetacelloVersonComponent metacelloSemanticStringLessThanSelf: self
+! !
+
+!String methodsFor:'*metacello-core-version comparison'!
+
+metacelloStringLessThanSelf: aString
+
+ ^aString < self
+! !
+
+!String methodsFor:'*metacello-core-version comparison'!
+
+metacelloVersionComponentLessThan: aMetacelloVersonComponent
+
+ ^aMetacelloVersonComponent metacelloStringLessThanSelf: self
+! !
+
+!String methodsFor:'*metacello-core'!
+
+removeFromMetacelloPackages: aMetacelloPackagesSpec
+
+ aMetacelloPackagesSpec addMember:
+ (aMetacelloPackagesSpec removeMember
+ name: self;
+ yourself)
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setAuthorInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setAuthorWithString: self
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setAuthorInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setAuthor:
+ (aMetacelloVersionSpec project valueHolderSpec
+ value: self;
+ yourself)
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setBlessingInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setBlessingWithString: self
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setBlessingInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setBlessing:
+ (aMetacelloVersionSpec project valueHolderSpec
+ value: self;
+ yourself)
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setDescriptionInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setDescriptionWithString: self
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setDescriptionInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setDescription:
+ (aMetacelloVersionSpec project valueHolderSpec
+ value: self;
+ yourself)
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setIncludesInMetacelloPackage: aMetacelloPackageSpec
+
+ aMetacelloPackageSpec setIncludes: { self }.
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setLoadsInMetacelloProject: aMetacelloPackageSpec
+
+ aMetacelloPackageSpec setLoads: { self }.
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setPackage: aString withInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setPackage: aString withString: self
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setPostLoadDoItInMetacelloSpec: aMetacelloSpec
+ self asSymbol setPostLoadDoItInMetacelloSpec: aMetacelloSpec
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setPreLoadDoItInMetacelloSpec: aMetacelloSpec
+ self asSymbol setPreLoadDoItInMetacelloSpec: aMetacelloSpec
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setProject: aString withInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setProject: aString withString: self
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setRequiresInMetacelloPackage: aMetacelloPackageSpec
+
+ aMetacelloPackageSpec setRequires: { self }.
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setTimestampInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setTimestampWithString: self
+! !
+
+!String methodsFor:'*metacello-core'!
+
+setTimestampInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setTimestamp:
+ (aMetacelloVersionSpec project valueHolderSpec
+ value: self;
+ yourself)
+! !
+
+!Symbol methodsFor:'*metacello-core'!
+
+setPostLoadDoItInMetacelloSpec: aMetacelloSpec
+ self precedence == 0
+ ifTrue: [ self error: 'Invalid selector' ].
+ aMetacelloSpec
+ setPostLoadDoIt:
+ (aMetacelloSpec project valueHolderSpec
+ value: self;
+ yourself)
+! !
+
+!Symbol methodsFor:'*metacello-core'!
+
+setPreLoadDoItInMetacelloSpec: aMetacelloSpec
+ self precedence == 0
+ ifTrue: [ self error: 'Invalid selector' ].
+ aMetacelloSpec
+ setPreLoadDoIt:
+ (aMetacelloSpec project valueHolderSpec
+ value: self;
+ yourself)
+! !
+
+!Timestamp methodsFor:'*metacello-core'!
+
+setTimestampInMetacelloConfig: aMetacelloConfig
+ aMetacelloConfig setTimestampWithString: self printString
+! !
+
+!Timestamp methodsFor:'*metacello-core'!
+
+setTimestampInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setTimestamp:
+ (aMetacelloVersionSpec project valueHolderSpec
+ value: self printString;
+ yourself)
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+asMetacelloSemanticVersionNumber
+ ^ MetacelloSemanticVersionNumber fromString: ''
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+asMetacelloVersionNumber
+
+ ^MetacelloVersionNumber fromString: ''
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+metacelloRegistrationHash
+ ^ self hash
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+registrationsCompareEqual: aMetacelloProjectSpec
+ ^ self = aMetacelloProjectSpec
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+setAuthorInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setAuthor: self
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+setBlessingInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setBlessing: self
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+setDescriptionInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setDescription: self
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+setPostLoadDoItInMetacelloSpec: aMetacelloSpec
+
+ aMetacelloSpec setPostLoadDoIt:
+ (aMetacelloSpec project valueHolderSpec
+ value: self;
+ yourself)
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+setPreLoadDoItInMetacelloSpec: aMetacelloSpec
+
+ aMetacelloSpec setPreLoadDoIt:
+ (aMetacelloSpec project valueHolderSpec
+ value: self;
+ yourself)
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+setProject: aString withInMetacelloConfig: aMetacelloConfig
+
+ aMetacelloConfig setProject: aString withString: self
+! !
+
+!UndefinedObject methodsFor:'*metacello-core'!
+
+setTimestampInMetacelloVersion: aMetacelloVersionSpec
+
+ aMetacelloVersionSpec setTimestamp: self
+! !
+
+!stx_goodies_metacello_core class methodsFor:'documentation'!
+
+extensionsVersion_SVN
+ ^ '$Id:: $'
+! !
\ No newline at end of file