MCDirectoryRepository.st
changeset 109 102a441aafcd
child 228 96243bb824dc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCDirectoryRepository.st	Wed Nov 22 14:22:18 2006 +0100
@@ -0,0 +1,75 @@
+"{ Package: 'stx:goodies/monticello' }"
+
+MCFileBasedRepository subclass:#MCDirectoryRepository
+	instanceVariableNames:'directory'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Monticello-Repositories'
+!
+
+
+!MCDirectoryRepository class methodsFor:'instance creation'!
+
+description
+	^ 'directory'
+!
+
+morphicConfigure
+	^ FileList2 modalFolderSelector ifNotNilDo:
+		[:directory |
+		self new directory: directory]
+! !
+
+!MCDirectoryRepository methodsFor:'as yet unclassified'!
+
+allFileNames
+	^ (directory entries sortBy: [:a :b | a modificationTime >= b modificationTime]) collect: [:ea | ea name]
+!
+
+description
+	^ directory pathName
+!
+
+directory
+	^ directory
+!
+
+directory: aDirectory
+	directory _ aDirectory
+!
+
+initialize
+	directory _ FileDirectory default
+!
+
+isValid
+	^directory exists
+!
+
+readStreamForFileNamed: aString do: aBlock
+	| file val |
+	file _ FileStream readOnlyFileNamed: (directory fullNameFor: aString).
+	val _ aBlock value: file.
+	file close.
+	^ val
+!
+
+writeStreamForFileNamed: aString replace: aBoolean do: aBlock
+	| file sel |
+	sel _ aBoolean ifTrue: [#forceNewFileNamed:] ifFalse: [#newFileNamed:].
+	file _ FileStream perform: sel with: (directory fullNameFor: aString).
+	aBlock value: file.
+	file close.
+! !
+
+!MCDirectoryRepository methodsFor:'comparing'!
+
+hash
+	^ directory pathName hash
+! !
+
+!MCDirectoryRepository class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDirectoryRepository.st,v 1.1 2006-11-22 13:22:18 cg Exp $'
+! !