Filename.st
branchjv
changeset 17993 956342c369a2
parent 17976 50c2416f962a
child 18011 deb0c3355881
--- a/Filename.st	Wed Nov 28 10:22:05 2012 +0000
+++ b/Filename.st	Fri Nov 30 17:19:23 2012 +0000
@@ -12,11 +12,11 @@
 "{ Package: 'stx:libbasic' }"
 
 Object subclass:#Filename
-	instanceVariableNames:'nameString'
-	classVariableNames:'NextTempFilenameIndex TempDirectory DefaultTempDirectory
-		ConcreteClass'
-	poolDictionaries:''
-	category:'System-Support'
+        instanceVariableNames:'nameString'
+        classVariableNames:'NextTempFilenameIndex TempDirectory DefaultTempDirectory
+                ConcreteClass'
+        poolDictionaries:''
+        category:'System-Support'
 !
 
 !Filename class methodsFor:'documentation'!
@@ -5819,6 +5819,32 @@
 
 !Filename methodsFor:'writing-files'!
 
+appendingFileDo:aBlock
+    "create a append-stream on the receiver file, evaluate aBlock, passing that stream as arg,
+     and return the blocks value. 
+     If the file cannot be opened, an exception is raised.
+     Ensures that the stream is closed."
+
+    |stream result|
+
+    stream := self appendStream.
+    [
+        result := aBlock value:stream
+    ] ensure:[
+        stream close
+    ].
+    ^ result
+
+    "
+     'ttt' asFilename appendingFileDo:[:s |
+        s nextPutLine:'hello'.
+        s nextPutLine:'world'.
+     ]           
+    "
+
+    "Created: / 09-11-2012 / 10:07:41 / sr"
+!
+
 contents:aStringOrCollectionOfLines
     "create (or overwrite) a file given its contents as a collection of lines.
      Raises an error, if the file is unwritable."
@@ -5875,15 +5901,15 @@
 !Filename class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.379 2012/10/27 17:44:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.381 2012/11/09 09:08:52 sr Exp $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libbasic/Filename.st,v 1.379 2012/10/27 17:44:35 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/Filename.st,v 1.381 2012/11/09 09:08:52 sr Exp §'
 !
 
 version_SVN
-    ^ '$Id: Filename.st 10858 2012-10-29 22:07:56Z vranyj1 $'
+    ^ '$Id: Filename.st 10876 2012-11-30 17:19:23Z vranyj1 $'
 ! !
 
 Filename initialize!