MCScriptDefinition.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 724 81de746444e9
child 1095 87f223484bc3
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCDefinition subclass:#MCScriptDefinition
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'script packageName'
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
679
0b9067de83be category change
Claus Gittinger <cg@exept.de>
parents: 325
diff changeset
     7
	category:'SCM-Monticello-Modeling'
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCScriptDefinition class methodsFor:'as yet unclassified'!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
from: aPackageInfo
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self script: (aPackageInfo perform: self scriptSelector) contents asString packageName: aPackageInfo name
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
script: aString packageName: packageString
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	^ self instanceLike: (self new initializeWithScript: aString packageName: packageString)
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
scriptSelector
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	self subclassResponsibility
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
! !
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    25
!MCScriptDefinition methodsFor:'accessing'!
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    26
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    27
description
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    28
	^ Array with: packageName with: self scriptSelector
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    29
!
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    30
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    31
packageInfo
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    32
	^ PackageInfo named: packageName
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    33
!
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    34
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    35
script
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    36
	^ script
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    37
!
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    38
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    39
scriptSelector
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    40
	^ self class scriptSelector
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    41
!
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    42
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    43
source
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    44
	^ script
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    45
! !
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    46
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    47
!MCScriptDefinition methodsFor:'comparing'!
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
= aDefinition
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	^ (super = aDefinition)
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
		and: [script = aDefinition script]
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    54
sortKey
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    55
	^ '!!', self scriptSelector "force to the front so it gets loaded first"
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    56
! !
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    58
!MCScriptDefinition methodsFor:'initializing'!
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
initializeWithScript: aString packageName: packageString
217
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
    61
	script := aString.
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
    62
	packageName := packageString
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    63
! !
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    64
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    65
!MCScriptDefinition methodsFor:'installing'!
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    66
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    67
evaluate
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    68
	Compiler evaluate: script
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
installScript
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
	self installScript: script
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
installScript: aString
217
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
    76
	| sel pi |
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
    77
	sel := (self scriptSelector, ':') asSymbol.
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
    78
	pi := self packageInfo.
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
    79
	(pi respondsTo: sel)
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
    80
		ifTrue: [pi perform: sel with: aString]
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
load
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
	self installScript
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    87
unload
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    88
	self installScript: nil
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    89
! !
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    91
!MCScriptDefinition methodsFor:'printing'!
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
summary
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	^ packageName, ' ', self scriptSelector
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    95
! !
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    97
!MCScriptDefinition methodsFor:'visiting'!
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    98
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
    99
accept: aVisitor
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   100
	"do nothing for now - this means it won't appear in the .st file"
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
! !
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
!MCScriptDefinition class methodsFor:'documentation'!
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
version
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   106
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCScriptDefinition.st,v 1.5 2013-01-18 13:02:42 cg Exp $'
217
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   107
!
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   108
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   109
version_CVS
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   110
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCScriptDefinition.st,v 1.5 2013-01-18 13:02:42 cg Exp $'
217
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   111
!
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   112
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   113
version_SVN
3255e6a1964e added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   114
    ^ '§Id: MCScriptDefinition.st 5 2010-08-29 07:30:29Z vranyj1 §'
59
86a69a4a2d13 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
! !
724
81de746444e9 category changes
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   116