Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
174 changes: 6 additions & 168 deletions ext/stringio/stringio.c
Original file line number Diff line number Diff line change
Expand Up @@ -883,9 +883,9 @@ strio_rewind(VALUE self)
* call-seq:
* seek(offset, whence = SEEK_SET) -> 0
*
* Sets the current position to the given integer +offset+ (in bytes),
* Sets the position to the given integer +offset+ (in bytes),
* with respect to a given constant +whence+;
* see {Position}[rdoc-ref:IO@Position].
* see {IO#seek}[rdoc-ref:IO#seek].
*/
static VALUE
strio_seek(int argc, VALUE *argv, VALUE self)
Expand Down Expand Up @@ -1473,170 +1473,8 @@ strio_readline(int argc, VALUE *argv, VALUE self)
* each_line(limit, chomp: false) {|line| ... } -> self
* each_line(sep, limit, chomp: false) {|line| ... } -> self
*
* With a block given calls the block with each remaining line (see "Position" below) in the stream;
* returns `self`.
*
* Leaves stream position as end-of-stream.
*
* **No Arguments**
*
* With no arguments given,
* reads lines using the default record separator global variable `$/`, whose initial value is `"\n"`.
*
* ```
* strio = StringIO.new(TEXT)
* strio.each_line {|line| p line }
* strio.eof? # => true
* ```
*
* Output:
*
* ```
* "First line\n"
* "Second line\n"
* "\n"
* "Fourth line\n"
* "Fifth line\n"
* ```
*
* **Argument `sep`**
*
* With only string argument `sep` given,
* reads lines using that string as the record separator:
*
* ```
* strio = StringIO.new(TEXT)
* strio.each_line(' ') {|line| p line }
* ```
*
* Output:
*
* ```
* "First "
* "line\nSecond "
* "line\n\nFourth "
* "line\nFifth "
* "line\n"
* ```
*
* **Argument `limit`**
*
* With only integer argument `limit` given,
* reads lines using the default record separator global variable `$/`, whose initial value is `"\n"`;
* also limits the size (in characters) of each line to the given limit:
*
* ```
* strio = StringIO.new(TEXT)
* strio.each_line(10) {|line| p line }
* ```
*
* Output:
*
* ```
* "First line"
* "\n"
* "Second lin"
* "e\n"
* "\n"
* "Fourth lin"
* "e\n"
* "Fifth line"
* "\n"
* ```
* **Arguments `sep` and `limit`**
*
* With arguments `sep` and `limit` both given,
* honors both:
*
* ```
* strio = StringIO.new(TEXT)
* strio.each_line(' ', 10) {|line| p line }
* ```
*
* Output:
*
* ```
* "First "
* "line\nSecon"
* "d "
* "line\n\nFour"
* "th "
* "line\nFifth"
* " "
* "line\n"
* ```
*
* **Position**
* :include: stringio/each_line.md
*
* As stated above, method `each` _remaining_ line in the stream.
*
* In the examples above each `strio` object starts with its position at beginning-of-stream;
* but in other cases the position may be anywhere (see StringIO#pos):
*
* ```
* strio = StringIO.new(TEXT)
* strio.pos = 30 # Set stream position to character 30.
* strio.each_line {|line| p line }
* ```
*
* Output:
*
* ```
* " line\n"
* "Fifth line\n"
* ```
*
* **Special Record Separators**
*
* Like some methds in class `IO`, StringIO.each honors two special record separators;
* see {Special Line Separators}[rdoc-ref:IO@Special+Line+Separator+Values].
*
* ```
* strio = StringIO.new(TEXT)
* strio.each_line('') {|line| p line } # Read as paragraphs (separated by blank lines).
* ```
*
* Output:
*
* ```
* "First line\nSecond line\n\n"
* "Fourth line\nFifth line\n"
* ```
*
* ```
* strio = StringIO.new(TEXT)
* strio.each_line(nil) {|line| p line } # "Slurp"; read it all.
* ```
*
* Output:
*
* ```
* "First line\nSecond line\n\nFourth line\nFifth line\n"
* ```
*
* **Keyword Argument `chomp`**
*
* With keyword argument `chomp` given as `true` (the default is `false`),
* removes trailing newline (if any) from each line:
*
* ```
* strio = StringIO.new(TEXT)
* strio.each_line(chomp: true) {|line| p line }
* ```
*
* Output:
*
* ```
* "First line"
* "Second line"
* ""
* "Fourth line"
* "Fifth line"
* ```
*
* With no block given, returns a new {Enumerator}[rdoc-ref:Enumerator].
*
* Related: StringIO.each_byte, StringIO.each_char, StringIO.each_codepoint.
*/
static VALUE
strio_each(int argc, VALUE *argv, VALUE self)
Expand Down Expand Up @@ -2005,10 +1843,10 @@ strio_syswrite_nonblock(int argc, VALUE *argv, VALUE self)

/*
* call-seq:
* strio.length -> integer
* strio.size -> integer
* size -> integer
*
* :include: stringio/size.rdoc
*
* Returns the size of the buffer string.
*/
static VALUE
strio_size(VALUE self)
Expand Down