PositionableStream.st
changeset 16195 2bed37c6f731
parent 16189 d7b9978c07bb
child 16209 f2d1d7b2d649
--- a/PositionableStream.st	Mon Mar 03 13:18:53 2014 +0100
+++ b/PositionableStream.st	Tue Mar 04 13:36:39 2014 +0100
@@ -558,6 +558,34 @@
     "
 ! !
 
+!PositionableStream methodsFor:'queries'!
+
+endsWith:aSequenceableCollection
+    "answer true, if the elements in aSequenceableCollection
+     form the end of the stream."
+
+    self contentsSpecies == collection class ifTrue:[
+        |sz|
+
+        sz := aSequenceableCollection size.
+        position < sz ifTrue:[
+            ^ false.
+        ].
+        ^ collection sameContentsFrom:position+1-sz to:position as:aSequenceableCollection startingAt:1.
+    ].
+    ^ self contents endsWith:aSequenceableCollection
+
+    "
+        ('' writeStream nextPutAll:'Hello World') endsWith:'World'
+        ('' writeStream nextPutAll:'Hello World') endsWith:'Hello World'
+        ('' writeStream nextPutAll:'Hello World') endsWith:'xHello World'
+        ('' writeStream nextPutAll:'Hello World') endsWith:'Bla'
+        ('' writeStream) endsWith:'Bla'
+        ('' writeStream) endsWith:''
+        ''  endsWith:''
+    "
+! !
+
 !PositionableStream methodsFor:'reading'!
 
 nextAvailable:count
@@ -720,11 +748,11 @@
 !PositionableStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.164 2014-03-01 22:33:23 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.165 2014-03-04 12:36:39 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.164 2014-03-01 22:33:23 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.165 2014-03-04 12:36:39 stefan Exp $'
 ! !