core/extensions.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 19 Sep 2012 01:38:26 +0000
changeset 20 8caf2f257260
parent 16 25ac697dc747
child 24 3313f2289211
permissions -rw-r--r--
- fixes for package support

"{ 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'!

asMetacelloAttributeList
    ^ self
! !

!Collection methodsFor:'*metacello-core'!

asMetacelloAttributePath
    ^ MetacelloMethodSectionPath withAll: self
! !

!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'!

setForDo: aBlock withInMetacelloConfig: aMetacelloConstructore
    aMetacelloConstructore setFor: self do: aBlock
! !

!Collection methodsFor:'*metacello-core'!

setForVersion: aString withInMetacelloConfig: aMetacelloConstructore
    aMetacelloConstructore setFor: self version: aString
! !

!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'!

asMetacelloAttributeList
    ^ {self}
! !

!Symbol methodsFor:'*metacello-core'!

asMetacelloAttributePath
    ^ MetacelloMethodSectionPath with: {self}
! !

!Symbol methodsFor:'*metacello-core'!

setForDo: aBlock withInMetacelloConfig: aMetacelloConstructore
    aMetacelloConstructore setFor: {self} do: aBlock
! !

!Symbol methodsFor:'*metacello-core'!

setForVersion: aString withInMetacelloConfig: aMetacelloConstructore
    aMetacelloConstructore setFor: {self} version: aString
! !

!Symbol methodsFor:'*metacello-core'!

setPostLoadDoItInMetacelloSpec: aMetacelloSpec
        self isUnary ifFalse:[
            self error:'Invalid symbol'
        ].

        aMetacelloSpec setPostLoadDoIt: 
                (aMetacelloSpec project valueHolderSpec
                        value: self;
                        yourself)

    "Modified: / 18-09-2012 / 19:18:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!Symbol methodsFor:'*metacello-core'!

setPreLoadDoItInMetacelloSpec: aMetacelloSpec
        self isUnary ifFalse:[
            self error:'Invalid symbol'
        ].
        aMetacelloSpec setPreLoadDoIt: 
                (aMetacelloSpec project valueHolderSpec
                        value: self;
                        yourself)

    "Modified: / 18-09-2012 / 19:19:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!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::                                                                                                                        $'
! !