Levente Uzonyi uploaded a new version of Files to project The Trunk: http://source.squeak.org/trunk/Files-ul.111.mcz
==================== Summary ====================
Name: Files-ul.111 Author: ul Time: 16 July 2011, 11:27:11.356 am UUID: 42445191-7bd0-324c-bcca-079ee8b5da96 Ancestors: Files-ul.110
- FileStream class >> #detectFile:do: can accept a FileStream as it's first argument - pass FileStreams instead of blocks to #detectFile:do:
=============== Diff against Files-ul.110 ===============
Item was changed: ----- Method: DirectoryEntryFile>>contentsFrom:to: (in category 'stream access') ----- contentsFrom: startPosition to: endPosition "Answer my contents from startPosition to endPosition." ^ FileStream + detectFile: self readStream - detectFile: [ self readStream ] do: [ : stream | stream position: startPosition ; next: endPosition - startPosition + 1 ]!
Item was changed: ----- Method: FileStream class>>detectFile:do: (in category 'instance creation') ----- + detectFile: aBlockOrFileStream do: anotherBlock + + ^aBlockOrFileStream value "Assume that FileStreams return self for #value." + ifNotNil: [ :file | [ anotherBlock value: file ] ensure: [ file close ] ]! - detectFile: aBlock do: anotherBlock - ^aBlock value - ifNil: [nil] - ifNotNil: [:file| [anotherBlock value: file] ensure: [file close]]!
Item was changed: ----- Method: FileStream class>>fileNamed:do: (in category 'instance creation') ----- fileNamed: fileName do: aBlock "Avi Bryant says, ''This idiom is quite common in other languages that make heavy use of closures (i.e. Lisp (with-file 'foo' (f) ...) and Ruby (File.open('foo'){|f|...})). It's time Squeak had it, too.'' Returns the result of aBlock." + ^self detectFile: (self fileNamed: fileName) do: aBlock! - ^ self detectFile: [ self fileNamed: fileName ] do: aBlock!
Item was changed: ----- Method: FileStream class>>forceNewFileNamed:do: (in category 'instance creation') ----- forceNewFileNamed: fileName do: aBlock "Avi Bryant says, ''This idiom is quite common in other languages that make heavy use of closures (i.e. Lisp (with-file 'foo' (f) ...) and Ruby (File.open('foo'){|f|...})). It's time Squeak had it, too.'' Returns the result of aBlock." + ^self detectFile: (self forceNewFileNamed: fileName) do: aBlock! - ^ self detectFile: [ self forceNewFileNamed: fileName ] do: aBlock!
Item was changed: ----- Method: FileStream class>>newFileNamed:do: (in category 'instance creation') ----- newFileNamed: fileName do: aBlock "Avi Bryant says, ''This idiom is quite common in other languages that make heavy use of closures (i.e. Lisp (with-file 'foo' (f) ...) and Ruby (File.open('foo'){|f|...})). It's time Squeak had it, too.'' Returns the result of aBlock." + ^self detectFile: (self newFileNamed: fileName) do: aBlock! - ^ self detectFile: [ self newFileNamed: fileName ] do: aBlock!
Item was changed: ----- Method: FileStream class>>oldFileNamed:do: (in category 'instance creation') ----- oldFileNamed: fileName do: aBlock "Avi Bryant says, ''This idiom is quite common in other languages that make heavy use of closures (i.e. Lisp (with-file 'foo' (f) ...) and Ruby (File.open('foo'){|f|...})). It's time Squeak had it, too.'' Returns the result of aBlock." + ^self detectFile: (self oldFileNamed: fileName) do: aBlock! - ^ self detectFile: [ self oldFileNamed: fileName ] do: aBlock!
Item was changed: ----- Method: FileStream class>>readOnlyFileNamed:do: (in category 'instance creation') ----- readOnlyFileNamed: fileName do: aBlock "Avi Bryant says, ''This idiom is quite common in other languages that make heavy use of closures (i.e. Lisp (with-file 'foo' (f) ...) and Ruby (File.open('foo'){|f|...})). It's time Squeak had it, too.'' Returns the result of aBlock." + ^self detectFile: (self readOnlyFileNamed: fileName) do: aBlock! - ^ self detectFile: [ self readOnlyFileNamed: fileName ] do: aBlock!
squeak-dev@lists.squeakfoundation.org