core/extensions.st
changeset 11 d354ac2af7ec
child 14 f01fe37493e9
--- /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