/*
* call-seq:
* strio.each(sep=$/) {|line| block } -> strio
* strio.each(limit) {|line| block } -> strio
* strio.each(sep, limit) {|line| block } -> strio
* strio.each_line(sep=$/) {|line| block } -> strio
* strio.each_line(limit) {|line| block } -> strio
* strio.each_line(sep,limit) {|line| block } -> strio
*
* See IO#each.
*/
static VALUE
strio_each(int argc, VALUE *argv, VALUE self)
{
struct StringIO *ptr = StringIO(self);
VALUE line;
RETURN_ENUMERATOR(self, argc, argv);
while (!NIL_P(line = strio_getline(argc, argv, readable(ptr)))) {
rb_yield(line);
}
return self;
}