author | Jan Vrany <jan.vrany@labware.com> |
Mon, 03 May 2021 22:03:54 +0100 | |
branch | jv |
changeset 1142 | f43bfccabfdb |
parent 1121 | c5661215109c |
permissions | -rw-r--r-- |
1121
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
1 |
" |
1142
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
2 |
COPYRIGHT (c) 2020-2021 LabWare |
1121
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
3 |
" |
109 | 4 |
"{ Package: 'stx:goodies/monticello' }" |
5 |
||
1121
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
6 |
"{ NameSpace: Smalltalk }" |
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
7 |
|
109 | 8 |
MCFileBasedRepository subclass:#MCDirectoryRepository |
9 |
instanceVariableNames:'directory' |
|
10 |
classVariableNames:'' |
|
11 |
poolDictionaries:'' |
|
623 | 12 |
category:'SCM-Monticello-Repositories' |
109 | 13 |
! |
14 |
||
1121
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
15 |
!MCDirectoryRepository class methodsFor:'documentation'! |
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
16 |
|
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
17 |
copyright |
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
18 |
" |
1142
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
19 |
COPYRIGHT (c) 2020-2021 LabWare |
1121
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
20 |
|
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
21 |
|
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
22 |
" |
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
23 |
! ! |
109 | 24 |
|
228 | 25 |
!MCDirectoryRepository class methodsFor:'initialization'! |
26 |
||
27 |
new |
|
28 |
^self basicNew initialize |
|
29 |
! ! |
|
30 |
||
109 | 31 |
!MCDirectoryRepository class methodsFor:'instance creation'! |
32 |
||
228 | 33 |
directory: aStringOrFileDirectory |
34 |
||
35 |
^self new directory: aStringOrFileDirectory |
|
36 |
||
37 |
"Created: / 16-09-2010 / 14:51:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
38 |
"Modified: / 16-09-2010 / 15:59:07 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
39 |
! |
|
40 |
||
109 | 41 |
morphicConfigure |
228 | 42 |
| directory | |
43 |
^ (directory := UIManager default chooseDirectory) ifNotNil: |
|
44 |
[ |
|
109 | 45 |
self new directory: directory] |
46 |
! ! |
|
47 |
||
228 | 48 |
!MCDirectoryRepository class methodsFor:'as yet unclassified'! |
49 |
||
907 | 50 |
fillInTheBlankRequest |
51 |
"superclass MCRepository class says that I am responsible to implement this method" |
|
52 |
||
53 |
^ self shouldImplement |
|
54 |
! ! |
|
55 |
||
56 |
!MCDirectoryRepository class methodsFor:'queries'! |
|
57 |
||
228 | 58 |
creationTemplate |
59 |
"superclass MCRepository class says that I am responsible to implement this method" |
|
60 |
||
1142
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
61 |
^ self creationTemplateDirectory: (Filename currentDirectory asAbsoluteFilename / 'package-cache') asString |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
62 |
|
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
63 |
" |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
64 |
MCDirectoryRepository creationTemplate |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
65 |
(TonelRepository directory:'/tmp') asCreationTemplate |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
66 |
" |
228 | 67 |
|
68 |
"Modified: / 16-09-2010 / 14:53:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
526 | 69 |
"Modified: / 01-12-2011 / 20:31:31 / cg" |
1142
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
70 |
"Modified (comment): / 03-05-2021 / 22:02:22 / Jan Vrany <jan.vrany@labware.com>" |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
71 |
! |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
72 |
|
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
73 |
creationTemplateDirectory: directory |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
74 |
"superclass MCRepository class says that I am responsible to implement this method" |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
75 |
|
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
76 |
^'%1 directory: ''%2''' bindWith: self name with: directory |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
77 |
|
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
78 |
"Created: / 03-05-2021 / 21:21:19 / Jan Vrany <jan.vrany@labware.com>" |
228 | 79 |
! |
80 |
||
907 | 81 |
description |
82 |
^ 'directory' |
|
228 | 83 |
! ! |
84 |
||
907 | 85 |
!MCDirectoryRepository methodsFor:'accessing'! |
109 | 86 |
|
87 |
description |
|
88 |
^ directory pathName |
|
89 |
! |
|
90 |
||
91 |
directory |
|
92 |
^ directory |
|
93 |
! |
|
94 |
||
1115
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
95 |
directory: aStringOrFilename |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
96 |
self assert: (aStringOrFilename isString or: [ aStringOrFilename isFilename ]). |
228 | 97 |
|
1115
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
98 |
directory := aStringOrFilename asFilename |
228 | 99 |
|
100 |
"Modified: / 16-09-2010 / 15:58:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1115
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
101 |
"Modified: / 25-08-2020 / 10:00:58 / Jan Vrany <jan.vrany@labware.com>" |
907 | 102 |
! ! |
109 | 103 |
|
907 | 104 |
!MCDirectoryRepository methodsFor:'as yet unclassified'! |
109 | 105 |
|
1142
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
106 |
asCreationTemplate |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
107 |
self creationTemplate isNil ifTrue: [ |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
108 |
^ self class creationTemplateDirectory: directory pathName. |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
109 |
]. |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
110 |
^ super asCreationTemplate |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
111 |
|
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
112 |
"Created: / 03-05-2021 / 21:19:21 / Jan Vrany <jan.vrany@labware.com>" |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
113 |
! |
f43bfccabfdb
Add creation template for `MCDirectoryRepository`
Jan Vrany <jan.vrany@labware.com>
parents:
1121
diff
changeset
|
114 |
|
109 | 115 |
isValid |
116 |
^directory exists |
|
117 |
! |
|
118 |
||
228 | 119 |
literalArrayEncoding |
120 |
||
121 |
^Array |
|
122 |
with: self class name asSymbol |
|
123 |
with: #directory: |
|
528 | 124 |
with: directory pathName "directoryName" |
228 | 125 |
|
126 |
" |
|
127 |
(MCDirectoryRepository directory: '/tmp') |
|
128 |
literalArrayEncoding decodeAsLiteralArray |
|
129 |
" |
|
130 |
||
131 |
"Created: / 16-09-2010 / 16:01:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
528 | 132 |
"Modified: / 01-12-2011 / 21:01:25 / cg" |
228 | 133 |
! |
134 |
||
109 | 135 |
readStreamForFileNamed: aString do: aBlock |
1115
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
136 |
^ (directory / aString) readingFileDo: aBlock |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
137 |
|
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
138 |
"Modified: / 25-08-2020 / 10:10:34 / Jan Vrany <jan.vrany@labware.com>" |
109 | 139 |
! |
140 |
||
141 |
writeStreamForFileNamed: aString replace: aBoolean do: aBlock |
|
1115
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
142 |
| file | |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
143 |
|
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
144 |
file := directory / aString. |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
145 |
(aBoolean not and: [ file exists ]) ifTrue: [ |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
146 |
self error: ('File already exists: %1' bindWith: file pathName) |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
147 |
]. |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
148 |
^ file writingFileDo: aBlock |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
149 |
|
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
150 |
"Modified: / 25-08-2020 / 10:10:39 / Jan Vrany <jan.vrany@labware.com>" |
109 | 151 |
! ! |
152 |
||
153 |
!MCDirectoryRepository methodsFor:'comparing'! |
|
154 |
||
155 |
hash |
|
156 |
^ directory pathName hash |
|
157 |
! ! |
|
158 |
||
228 | 159 |
!MCDirectoryRepository methodsFor:'displaying'! |
160 |
||
161 |
displayString |
|
162 |
||
528 | 163 |
^directory pathName "/ directoryName |
228 | 164 |
|
165 |
"Created: / 14-09-2010 / 23:18:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
528 | 166 |
"Modified: / 01-12-2011 / 21:00:33 / cg" |
228 | 167 |
! ! |
168 |
||
907 | 169 |
!MCDirectoryRepository methodsFor:'initialization'! |
170 |
||
171 |
initialize |
|
1115
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
172 |
super initialize. |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
173 |
directory := Filename currentDirectory |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
174 |
|
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
175 |
"Modified: / 25-08-2020 / 10:05:44 / Jan Vrany <jan.vrany@labware.com>" |
907 | 176 |
! ! |
177 |
||
178 |
!MCDirectoryRepository methodsFor:'queries'! |
|
179 |
||
180 |
allFileNames |
|
1121
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
181 |
^ (directory directoryContentsAsFilenames asArray sortBy: [:a :b | a modificationTime >= b modificationTime]) collect: [:ea | ea baseName] |
1115
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
182 |
|
1121
c5661215109c
Tonel: various fixes here and there (part 2)
Jan Vrany <jan.vrany@labware.com>
parents:
1115
diff
changeset
|
183 |
"Modified: / 03-07-2020 / 20:30:51 / Jan Vrany <jan.vrany@labware.com>" |
907 | 184 |
! ! |
185 |
||
109 | 186 |
!MCDirectoryRepository class methodsFor:'documentation'! |
187 |
||
188 |
version |
|
907 | 189 |
^ '$Header: /cvs/stx/stx/goodies/monticello/MCDirectoryRepository.st,v 1.7 2014-02-12 14:53:38 cg Exp $' |
228 | 190 |
! |
191 |
||
192 |
version_CVS |
|
907 | 193 |
^ '$Header: /cvs/stx/stx/goodies/monticello/MCDirectoryRepository.st,v 1.7 2014-02-12 14:53:38 cg Exp $' |
228 | 194 |
! |
195 |
||
1115
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
196 |
version_HG |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
197 |
|
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
198 |
^ '$Changeset: <not expanded> $' |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
199 |
! |
12c55ec23e26
Refactor `MCDirectoryRepository` to use `Filename`
Jan Vrany <jan.vrany@labware.com>
parents:
907
diff
changeset
|
200 |
|
228 | 201 |
version_SVN |
907 | 202 |
^ '$Id: MCDirectoryRepository.st,v 1.7 2014-02-12 14:53:38 cg Exp $' |
109 | 203 |
! ! |
907 | 204 |