ruby/doc/stringio/each_codepoint.rdoc

34 lines
1.0 KiB
Plaintext

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].