summaryrefslogtreecommitdiff
path: root/doc/stringio/each_codepoint.rdoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/stringio/each_codepoint.rdoc')
-rw-r--r--doc/stringio/each_codepoint.rdoc33
1 files changed, 33 insertions, 0 deletions
diff --git a/doc/stringio/each_codepoint.rdoc b/doc/stringio/each_codepoint.rdoc
new file mode 100644
index 0000000000..0d10831142
--- /dev/null
+++ b/doc/stringio/each_codepoint.rdoc
@@ -0,0 +1,33 @@
+With a block given, calls the block with each successive codepoint from self;
+sets the position to end-of-stream;
+returns +self+.
+
+Each codepoint is the integer value for a character; returns self:
+
+ codepoints = []
+ strio = StringIO.new('hello')
+ strio.each_codepoint {|codepoint| codepoints.push(codepoint) }
+ strio.eof? # => true
+ codepoints # => [104, 101, 108, 108, 111]
+
+ codepoints = []
+ strio = StringIO.new('こんにちは')
+ strio.each_codepoint {|codepoint| codepoints.push(codepoint) }
+ codepoints # => [12371, 12435, 12395, 12385, 12399]
+
+Position in the stream matters:
+
+ codepoints = []
+ strio = StringIO.new('こんにちは')
+ strio.getc # => "こ"
+ strio.pos # => 3
+ strio.each_codepoint {|codepoint| codepoints.push(codepoint) }
+ codepoints # => [12435, 12395, 12385, 12399]
+
+When at end-of-stream, the block is not called:
+
+ strio.eof? # => true
+ strio.each_codepoint {|codepoint| fail 'Boo!' }
+ strio.eof? # => true
+
+With no block given, returns a new {Enumerator}[rdoc-ref:Enumerator].