From 2908a8f721c2faeae68e9bb114b03bc5d2b204ae Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Thu, 21 May 2020 12:02:21 +0200 Subject: [PATCH] Implementation of readFileStream and writeFileStream on GRPlatform for Pharo9 --- .../instance/fileStreamOn.do.binary..st | 5 ++++- .../instance/readFileStreamOn.do.binary..st | 3 +++ .../instance/writeFileStreamOn.do.binary..st | 3 +++ .../instance/contentsOfFile.binary..st | 2 +- .../instance/fileStreamOn.do.binary..st | 13 ------------- .../instance/readFileStreamOn.do.binary..st | 7 +++++++ .../instance/write.toFile.inFolder..st | 18 +++++++----------- .../instance/writeFileStreamOn.do.binary..st | 5 +++++ 8 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 repository/Grease-Core.package/GRPlatform.class/instance/readFileStreamOn.do.binary..st create mode 100644 repository/Grease-Core.package/GRPlatform.class/instance/writeFileStreamOn.do.binary..st delete mode 100644 repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st create mode 100644 repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st create mode 100644 repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/fileStreamOn.do.binary..st b/repository/Grease-Core.package/GRPlatform.class/instance/fileStreamOn.do.binary..st index b35e040c..f0155c88 100644 --- a/repository/Grease-Core.package/GRPlatform.class/instance/fileStreamOn.do.binary..st +++ b/repository/Grease-Core.package/GRPlatform.class/instance/fileStreamOn.do.binary..st @@ -1,3 +1,6 @@ file library fileStreamOn: aString do: aBlock binary: aBoolean - self subclassResponsibility \ No newline at end of file + self + greaseDeprecatedApi: 'GRPlatform>>#fileStreamOn:do:binary:' + details: 'Use readFileStreamOn:do:binary:'. + ^ self readFileStreamOn: aString do: aBlock binary: aBoolean \ No newline at end of file diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/readFileStreamOn.do.binary..st b/repository/Grease-Core.package/GRPlatform.class/instance/readFileStreamOn.do.binary..st new file mode 100644 index 00000000..3ffa885a --- /dev/null +++ b/repository/Grease-Core.package/GRPlatform.class/instance/readFileStreamOn.do.binary..st @@ -0,0 +1,3 @@ +file library +readFileStreamOn: aString do: aBlock binary: aBoolean + self subclassResponsibility \ No newline at end of file diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/writeFileStreamOn.do.binary..st b/repository/Grease-Core.package/GRPlatform.class/instance/writeFileStreamOn.do.binary..st new file mode 100644 index 00000000..3d67b1a2 --- /dev/null +++ b/repository/Grease-Core.package/GRPlatform.class/instance/writeFileStreamOn.do.binary..st @@ -0,0 +1,3 @@ +file library +writeFileStreamOn: aString do: aBlock binary: aBoolean + self subclassResponsibility \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st index 119ba39b..ecfdc9d4 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/contentsOfFile.binary..st @@ -1,3 +1,3 @@ file library contentsOfFile: aString binary: aBoolean - ^ self fileStreamOn: aString do: [ :stream | stream contents ] binary: aBoolean \ No newline at end of file + ^ self readFileStreamOn: aString do: [ :stream | stream contents ] binary: aBoolean \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st deleted file mode 100644 index 2fd81137..00000000 --- a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/fileStreamOn.do.binary..st +++ /dev/null @@ -1,13 +0,0 @@ -file library -fileStreamOn: aString do: aBlock binary: aBoolean - ^ aBoolean - ifTrue: [ - FileStream fileNamed: aString do: [ :stream | - stream binary. - aBlock value: stream ] ] - ifFalse: [ - MultiByteFileStream fileNamed: aString do: [ :stream | - stream - ascii; - wantsLineEndConversion: true. - aBlock value: stream ] ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st new file mode 100644 index 00000000..2b7331ab --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/readFileStreamOn.do.binary..st @@ -0,0 +1,7 @@ +file library +readFileStreamOn: aString do: aBlock binary: aBoolean + "Line end conversion is no longer done for ascii... TBD!" + + ^ aBoolean + ifTrue: [ aString asFileReference binaryReadStreamDo: aBlock ] + ifFalse: [ aString asFileReference readStreamEncoded: 'ascii' do: aBlock ] \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st index e77ae8c1..a2b62b43 100644 --- a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/write.toFile.inFolder..st @@ -1,15 +1,11 @@ file library write: aStringOrByteArray toFile: aFileNameString inFolder: aFolderString "writes aStringOrByteArray to a file named aFilenameString in the folder aFolderString" - | folder stream fullFilePath | + + | folder | folder := FileSystem disk resolveString: aFolderString. - fullFilePath := (folder / aFileNameString) asFileReference. - stream := aStringOrByteArray isString - ifTrue: [ - (MultiByteFileStream forceNewFileNamed: fullFilePath fullName) - ascii; - wantsLineEndConversion: true; - yourself ] - ifFalse: [ (FileStream forceNewFileNamed: fullFilePath fullName) binary ]. - [ stream nextPutAll: aStringOrByteArray ] - ensure: [ stream close ] \ No newline at end of file + "TODO: wantsLineEndConversion: true; ??" + ^ self + writeFileStreamOn: (folder / aFileNameString) asFileReference ensureDelete fullName + do: [ :stream | stream nextPutAll: aStringOrByteArray ] + binary: aStringOrByteArray isString not \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st new file mode 100644 index 00000000..762e9cca --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/writeFileStreamOn.do.binary..st @@ -0,0 +1,5 @@ +file library +writeFileStreamOn: aString do: aBlock binary: aBoolean + ^ aBoolean + ifTrue: [ aString asFileReference binaryWriteStreamDo: aBlock ] + ifFalse: [ aString asFileReference writeStreamEncoded: 'ascii' do: aBlock ] \ No newline at end of file