"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
"{ Package: 'stx:libbasic' }"
Object subclass:#ConfigurableFeatures
instanceVariableNames:''
classVariableNames:'LoadedFeatures'
poolDictionaries:''
category:'System-Support'
!
!ConfigurableFeatures class methodsFor:'documentation'!
copyright
"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
!
documentation
"
being tired of finding '(Smalltalk at:someClass) notNil' all over the place,
start to concentrate feature queries to this single class, which might get more
feature methods via extensions.
Thus, to correctly ask for a feature being present, use:
ConfigurableFeature includesFeature:featureName
or
ConfigurableFeature knownFeatures
to ask for a list of features.
Caveat: just started; more will be moved to this place as time goes by
"
! !
!ConfigurableFeatures class methodsFor:'queries'!
allFeatures
"a list of features which are present in that smalltalk configuration"
^ self knownFeatures select:[:each | self includesFeature:each]
"
ConfigurableFeatures allFeatures
"
"Created: / 07-09-2011 / 10:50:31 / cg"
!
includesFeature:featureName
|querySelector|
querySelector := ('has',featureName asUppercaseFirst) asSymbol.
^ self perform:querySelector ifNotUnderstood:false.
"
ConfigurableFeatures includesFeature:#SubversionSupport
"
"Created: / 07-09-2011 / 10:49:08 / cg"
!
knownFeatures
"a list of known features; some of them might not be present in that smalltalk configuration"
^ self class methodDictionary keys
collect:[:each |
(each startsWith:'has') ifTrue:[
(each endsWith:':') ifFalse:[
each copyFrom:4
]
] ifFalse:[
nil
].
]
thenSelect:[:nm | nm notNil]
"
ConfigurableFeatures allFeatures
"
"Created: / 07-09-2011 / 10:51:26 / cg"
! !
!ConfigurableFeatures class methodsFor:'queries-features'!
hasCVSSupport
"/ use Smalltalk-at to trick the dependency/prerequisite generator
^ (Smalltalk at: #'CVSSourceCodeManager' ifAbsent:nil) notNil
"
ConfigurableFeatures hasCVSSupport
"
"Created: / 03-01-2012 / 15:36:54 / cg"
!
hasCVSSupportEnabled
^ self hasSCMSupportEnabledFor:#'CVSSourceCodeManager'
"Created: / 03-01-2012 / 15:42:16 / cg"
!
hasDataBaseSourceCodeManagerSupport
"/ use Smalltalk-at to trick the dependency/prerequisite generator
^ (Smalltalk at: #'DataBaseSourceCodeManager' ifAbsent:nil) notNil
"
ConfigurableFeatures hasDataBaseSourceCodeManagerSupport
"
"Created: / 03-01-2012 / 15:36:03 / cg"
!
hasDataBaseSourceCodeManagerSupportEnabled
^ self hasSCMSupportEnabledFor:#'DataBaseSourceCodeManager'
"Created: / 03-01-2012 / 15:36:12 / cg"
!
hasFileBasedSourceCodeManagerSupport
"/ use Smalltalk-at to trick the dependency/prerequisite generator
^ (Smalltalk at: #'FileBasedSourceCodeManager' ifAbsent:nil) notNil
"
ConfigurableFeatures hasFileBasedSourceCodeManagerSupport
"
"Created: / 21-12-2011 / 17:07:21 / cg"
!
hasFileBasedSourceCodeManagerSupportEnabled
^ self hasSCMSupportEnabledFor:#'FileBasedSourceCodeManager'
"Created: / 21-12-2011 / 17:07:08 / cg"
!
hasMercurialSupport
"/ use Smalltalk-at to trick the dependency/prerequisite generator
^ (Smalltalk at: #'MercurialSourceCodeManager' ifAbsent:nil) notNil
"
ConfigurableFeatures hasMercurialSupport
"
"Created: / 18-01-2012 / 10:58:07 / cg"
!
hasMercurialSupportEnabled
^ self hasSCMSupportEnabledFor:#'MercurialSourceCodeManager'
"
self hasMercurialSupportEnabled
"
"Created: / 18-01-2012 / 10:58:12 / cg"
!
hasMonticelloSupport
"/ use Smalltalk-at to trick the dependency/prerequisite generator
^ (Smalltalk at: #'MonticelloSourceCodeManager' ifAbsent:nil) notNil
"
ConfigurableFeatures hasMonticelloSupport
"
"Created: / 03-01-2012 / 15:44:32 / cg"
!
hasMonticelloSupportEnabled
^ self hasSCMSupportEnabledFor:#'MonticelloSourceCodeManager'
"Created: / 03-01-2012 / 15:44:39 / cg"
!
hasPerforceSupport
"/ use Smalltalk-at to trick the dependency/prerequisite generator
^ (Smalltalk at: #'PerforceSourceCodeManager' ifAbsent:nil) notNil
"
ConfigurableFeatures hasPerforceSupport
"
"Created: / 03-01-2012 / 15:43:42 / cg"
!
hasPerforceSupportEnabled
^ self hasSCMSupportEnabledFor:#'PerforceSourceCodeManager'
"Created: / 03-01-2012 / 15:43:28 / cg"
!
hasSCMSupportEnabledFor:aSourceCodeManagerClassName
|scm|
"/ use Smalltalk-at to trick the dependency/prerequisite generator
scm := Smalltalk at:aSourceCodeManagerClassName ifAbsent:nil.
^ scm notNil
and:[ scm isLoaded
and:[ scm shownInBrowserMenus ]]
"Created: / 18-01-2012 / 10:55:58 / cg"
!
hasSubversionSupport
"/ use Smalltalk-at to trick the dependency/prerequisite generator
^ (Smalltalk at: #'SVN::SVNSourceCodeManager' ifAbsent:nil) notNil
"
ConfigurableFeatures hasSubversionSupport
"
"Created: / 07-09-2011 / 10:40:40 / cg"
!
hasSubversionSupportEnabled
^ self hasSCMSupportEnabledFor:#'SVNSourceCodeManager'
"Created: / 07-09-2011 / 10:41:33 / cg"
! !
!ConfigurableFeatures class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libbasic/ConfigurableFeatures.st,v 1.6 2012/01/19 12:09:48 cg Exp $'
!
version_CVS
^ 'Header: /cvs/stx/stx/libbasic/ConfigurableFeatures.st,v 1.6 2012/01/19 12:09:48 cg Exp '
!
version_SVN
^ '$Id: ConfigurableFeatures.st 10763 2012-01-22 23:07:15Z vranyj1 $'
! !