MCDirectoryRepository.st
author convert-repo
Thu, 07 Apr 2016 04:05:21 +0000
changeset 1008 c9cdc9559304
parent 907 fce2e5941124
child 1023 83036b1d627f
child 1115 12c55ec23e26
permissions -rw-r--r--
update tags
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCFileBasedRepository subclass:#MCDirectoryRepository
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'directory'
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
623
4bbca2eb4aee category change
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
     7
	category:'SCM-Monticello-Repositories'
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    11
!MCDirectoryRepository class methodsFor:'initialization'!
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    12
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    13
new
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    14
    ^self basicNew initialize
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    15
! !
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    16
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCDirectoryRepository class methodsFor:'instance creation'!
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    19
directory: aStringOrFileDirectory
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    20
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    21
    ^self new directory: aStringOrFileDirectory
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    22
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    23
    "Created: / 16-09-2010 / 14:51:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    24
    "Modified: / 16-09-2010 / 15:59:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    25
!
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    26
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
morphicConfigure
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    28
	| directory |
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    29
	^ (directory := UIManager default chooseDirectory) ifNotNil:
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    30
		[
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
		self new directory: directory]
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
! !
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    34
!MCDirectoryRepository class methodsFor:'as yet unclassified'!
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    35
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    36
fillInTheBlankRequest
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    37
    "superclass MCRepository class says that I am responsible to implement this method"
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    38
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    39
    ^ self shouldImplement
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    40
! !
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    41
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    42
!MCDirectoryRepository class methodsFor:'queries'!
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    43
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    44
creationTemplate
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    45
    "superclass MCRepository class says that I am responsible to implement this method"
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    46
526
4a1d6bba1036 changed: #creationTemplate
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
    47
    ^
4a1d6bba1036 changed: #creationTemplate
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
    48
'MCDirectoryRepository 
4a1d6bba1036 changed: #creationTemplate
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
    49
    directory: ''%1'''
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    50
        bindWith: (Filename currentDirectory asAbsoluteFilename / 'package-cache') asString
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    51
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    52
    "Modified: / 16-09-2010 / 14:53:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
526
4a1d6bba1036 changed: #creationTemplate
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
    53
    "Modified: / 01-12-2011 / 20:31:31 / cg"
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    54
!
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    55
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    56
description
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    57
	^ 'directory'
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    58
! !
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    59
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    60
!MCDirectoryRepository methodsFor:'accessing'!
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
description
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	^ directory pathName
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
directory
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	^ directory
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
!
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    70
directory: aStringOrDirectory
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    71
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    72
    directory := aStringOrDirectory isString 
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    73
        ifTrue:[FileDirectory directoryNamed: aStringOrDirectory]
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    74
        ifFalse:[aStringOrDirectory].
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    75
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    76
    "Modified: / 16-09-2010 / 15:58:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    77
! !
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
    79
!MCDirectoryRepository methodsFor:'as yet unclassified'!
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
isValid
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	^directory exists
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    85
literalArrayEncoding
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    86
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    87
    ^Array 
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    88
        with: self class name asSymbol
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    89
        with: #directory:
528
ea2c305d04fe changed:
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    90
        with: directory pathName "directoryName"
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    91
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    92
    "
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    93
        (MCDirectoryRepository directory: '/tmp')
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    94
            literalArrayEncoding decodeAsLiteralArray
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    95
    "
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    96
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    97
    "Created: / 16-09-2010 / 16:01:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
528
ea2c305d04fe changed:
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
    98
    "Modified: / 01-12-2011 / 21:01:25 / cg"
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
    99
!
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   100
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
readStreamForFileNamed: aString do: aBlock
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
	| file val |
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   103
	file := FileStream readOnlyFileNamed: (directory fullNameFor: aString).
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   104
	val := aBlock value: file.
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
	file close.
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	^ val
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
!
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
writeStreamForFileNamed: aString replace: aBoolean do: aBlock
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	| file sel |
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   111
	sel := aBoolean ifTrue: [#forceNewFileNamed:] ifFalse: [#newFileNamed:].
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   112
	file := FileStream perform: sel with: (directory fullNameFor: aString).
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
	aBlock value: file.
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	file close.
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
! !
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
!MCDirectoryRepository methodsFor:'comparing'!
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
hash
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
	^ directory pathName hash
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
! !
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   123
!MCDirectoryRepository methodsFor:'displaying'!
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   124
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   125
displayString
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   126
528
ea2c305d04fe changed:
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   127
    ^directory pathName "/ directoryName
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   128
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   129
    "Created: / 14-09-2010 / 23:18:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
528
ea2c305d04fe changed:
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
   130
    "Modified: / 01-12-2011 / 21:00:33 / cg"
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   131
! !
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   132
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   133
!MCDirectoryRepository methodsFor:'initialization'!
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   134
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   135
initialize
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   136
	super initialize.
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   137
	directory := FileDirectory default
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   138
! !
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   139
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   140
!MCDirectoryRepository methodsFor:'queries'!
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   141
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   142
allFileNames
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   143
	^ (directory entries sortBy: [:a :b | a modificationTime >= b modificationTime]) collect: [:ea | ea name]
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   144
! !
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   145
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
!MCDirectoryRepository class methodsFor:'documentation'!
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
version
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   149
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDirectoryRepository.st,v 1.7 2014-02-12 14:53:38 cg Exp $'
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   150
!
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   151
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   152
version_CVS
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   153
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDirectoryRepository.st,v 1.7 2014-02-12 14:53:38 cg Exp $'
228
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   154
!
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   155
96243bb824dc added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 109
diff changeset
   156
version_SVN
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   157
    ^ '$Id: MCDirectoryRepository.st,v 1.7 2014-02-12 14:53:38 cg Exp $'
109
102a441aafcd initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
! !
907
fce2e5941124 categories
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   159