mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
delete deprecated IO-like methods
This commit deletes
{IO,ARGF,StringIO,Zib::GZipReader}#{bytes,chars,lines,codepoints}, which
have been deprecated since c47c095b97
.
Note that String also has those methods. They are neither depreacted
nor deleted because they are not aliases of counterpart each_something.
This commit is contained in:
parent
84eb2bfab9
commit
43b95bafd5
20 changed files with 196 additions and 360 deletions
|
@ -832,18 +832,6 @@ strio_each_byte(VALUE self)
|
|||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_byte.
|
||||
*/
|
||||
static VALUE
|
||||
strio_bytes(VALUE self)
|
||||
{
|
||||
rb_warn("StringIO#bytes is deprecated; use #each_byte instead");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(self, ID2SYM(rb_intern("each_byte")), 0, 0);
|
||||
return strio_each_byte(self);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* strio.getc -> string or nil
|
||||
|
@ -1057,18 +1045,6 @@ strio_each_char(VALUE self)
|
|||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_char.
|
||||
*/
|
||||
static VALUE
|
||||
strio_chars(VALUE self)
|
||||
{
|
||||
rb_warn("StringIO#chars is deprecated; use #each_char instead");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(self, ID2SYM(rb_intern("each_char")), 0, 0);
|
||||
return strio_each_char(self);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* strio.each_codepoint {|c| block } -> strio
|
||||
|
@ -1101,18 +1077,6 @@ strio_each_codepoint(VALUE self)
|
|||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_codepoint.
|
||||
*/
|
||||
static VALUE
|
||||
strio_codepoints(VALUE self)
|
||||
{
|
||||
rb_warn("StringIO#codepoints is deprecated; use #each_codepoint instead");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(self, ID2SYM(rb_intern("each_codepoint")), 0, 0);
|
||||
return strio_each_codepoint(self);
|
||||
}
|
||||
|
||||
/* Boyer-Moore search: copied from regex.c */
|
||||
static void
|
||||
bm_init_skip(long *skip, const char *pat, long m)
|
||||
|
@ -1363,18 +1327,6 @@ strio_each(int argc, VALUE *argv, VALUE self)
|
|||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_line.
|
||||
*/
|
||||
static VALUE
|
||||
strio_lines(int argc, VALUE *argv, VALUE self)
|
||||
{
|
||||
rb_warn("StringIO#lines is deprecated; use #each_line instead");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(self, ID2SYM(rb_intern("each_line")), argc, argv);
|
||||
return strio_each(argc, argv, self);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* strio.readlines(sep=$/, chomp: false) -> array
|
||||
|
@ -1843,13 +1795,9 @@ Init_stringio(void)
|
|||
|
||||
rb_define_method(StringIO, "each", strio_each, -1);
|
||||
rb_define_method(StringIO, "each_line", strio_each, -1);
|
||||
rb_define_method(StringIO, "lines", strio_lines, -1);
|
||||
rb_define_method(StringIO, "each_byte", strio_each_byte, 0);
|
||||
rb_define_method(StringIO, "bytes", strio_bytes, 0);
|
||||
rb_define_method(StringIO, "each_char", strio_each_char, 0);
|
||||
rb_define_method(StringIO, "chars", strio_chars, 0);
|
||||
rb_define_method(StringIO, "each_codepoint", strio_each_codepoint, 0);
|
||||
rb_define_method(StringIO, "codepoints", strio_codepoints, 0);
|
||||
rb_define_method(StringIO, "getc", strio_getc, 0);
|
||||
rb_define_method(StringIO, "ungetc", strio_ungetc, 1);
|
||||
rb_define_method(StringIO, "ungetbyte", strio_ungetbyte, 1);
|
||||
|
|
|
@ -4003,20 +4003,6 @@ rb_gzreader_each_byte(VALUE obj)
|
|||
return Qnil;
|
||||
}
|
||||
|
||||
/*
|
||||
* Document-method: Zlib::GzipReader#bytes
|
||||
*
|
||||
* This is a deprecated alias for <code>each_byte</code>.
|
||||
*/
|
||||
static VALUE
|
||||
rb_gzreader_bytes(VALUE obj)
|
||||
{
|
||||
rb_warn("Zlib::GzipReader#bytes is deprecated; use #each_byte instead");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(obj, ID2SYM(rb_intern("each_byte")), 0, 0);
|
||||
return rb_gzreader_each_byte(obj);
|
||||
}
|
||||
|
||||
/*
|
||||
* Document-method: Zlib::GzipReader#ungetc
|
||||
*
|
||||
|
@ -4289,20 +4275,6 @@ rb_gzreader_each(int argc, VALUE *argv, VALUE obj)
|
|||
return obj;
|
||||
}
|
||||
|
||||
/*
|
||||
* Document-method: Zlib::GzipReader#lines
|
||||
*
|
||||
* This is a deprecated alias for <code>each_line</code>.
|
||||
*/
|
||||
static VALUE
|
||||
rb_gzreader_lines(int argc, VALUE *argv, VALUE obj)
|
||||
{
|
||||
rb_warn("Zlib::GzipReader#lines is deprecated; use #each_line instead");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(obj, ID2SYM(rb_intern("each_line")), argc, argv);
|
||||
return rb_gzreader_each(argc, argv, obj);
|
||||
}
|
||||
|
||||
/*
|
||||
* Document-method: Zlib::GzipReader#readlines
|
||||
*
|
||||
|
@ -4763,14 +4735,12 @@ Init_zlib(void)
|
|||
rb_define_method(cGzipReader, "readbyte", rb_gzreader_readbyte, 0);
|
||||
rb_define_method(cGzipReader, "each_byte", rb_gzreader_each_byte, 0);
|
||||
rb_define_method(cGzipReader, "each_char", rb_gzreader_each_char, 0);
|
||||
rb_define_method(cGzipReader, "bytes", rb_gzreader_bytes, 0);
|
||||
rb_define_method(cGzipReader, "ungetc", rb_gzreader_ungetc, 1);
|
||||
rb_define_method(cGzipReader, "ungetbyte", rb_gzreader_ungetbyte, 1);
|
||||
rb_define_method(cGzipReader, "gets", rb_gzreader_gets, -1);
|
||||
rb_define_method(cGzipReader, "readline", rb_gzreader_readline, -1);
|
||||
rb_define_method(cGzipReader, "each", rb_gzreader_each, -1);
|
||||
rb_define_method(cGzipReader, "each_line", rb_gzreader_each, -1);
|
||||
rb_define_method(cGzipReader, "lines", rb_gzreader_lines, -1);
|
||||
rb_define_method(cGzipReader, "readlines", rb_gzreader_readlines, -1);
|
||||
rb_define_method(cGzipReader, "external_encoding", rb_gzreader_external_encoding, 0);
|
||||
|
||||
|
|
117
io.c
117
io.c
|
@ -3958,19 +3958,6 @@ rb_io_each_line(int argc, VALUE *argv, VALUE io)
|
|||
return io;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_line.
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
rb_io_lines(int argc, VALUE *argv, VALUE io)
|
||||
{
|
||||
rb_warn_deprecated("IO#lines", "#each_line");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(io, ID2SYM(rb_intern("each_line")), argc, argv);
|
||||
return rb_io_each_line(argc, argv, io);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* ios.each_byte {|byte| block } -> ios
|
||||
|
@ -4009,19 +3996,6 @@ rb_io_each_byte(VALUE io)
|
|||
return io;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_byte.
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
rb_io_bytes(VALUE io)
|
||||
{
|
||||
rb_warn_deprecated("IO#bytes", "#each_byte");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(io, ID2SYM(rb_intern("each_byte")), 0, 0);
|
||||
return rb_io_each_byte(io);
|
||||
}
|
||||
|
||||
static VALUE
|
||||
io_getc(rb_io_t *fptr, rb_encoding *enc)
|
||||
{
|
||||
|
@ -4163,20 +4137,6 @@ rb_io_each_char(VALUE io)
|
|||
return io;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_char.
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
rb_io_chars(VALUE io)
|
||||
{
|
||||
rb_warn_deprecated("IO#chars", "#each_char");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(io, ID2SYM(rb_intern("each_char")), 0, 0);
|
||||
return rb_io_each_char(io);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* ios.each_codepoint {|c| block } -> ios
|
||||
|
@ -4294,20 +4254,6 @@ rb_io_each_codepoint(VALUE io)
|
|||
UNREACHABLE_RETURN(Qundef);
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_codepoint.
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
rb_io_codepoints(VALUE io)
|
||||
{
|
||||
rb_warn_deprecated("IO#codepoints", "#each_codepoint");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(io, ID2SYM(rb_intern("each_codepoint")), 0, 0);
|
||||
return rb_io_each_codepoint(io);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* ios.getc -> string or nil
|
||||
|
@ -12754,24 +12700,8 @@ argf_each_line(int argc, VALUE *argv, VALUE argf)
|
|||
return argf;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_line.
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
argf_lines(int argc, VALUE *argv, VALUE argf)
|
||||
{
|
||||
rb_warn_deprecated("ARGF#lines", "#each_line");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(argf, ID2SYM(rb_intern("each_line")), argc, argv);
|
||||
return argf_each_line(argc, argv, argf);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* ARGF.bytes {|byte| block } -> ARGF
|
||||
* ARGF.bytes -> an_enumerator
|
||||
*
|
||||
* ARGF.each_byte {|byte| block } -> ARGF
|
||||
* ARGF.each_byte -> an_enumerator
|
||||
*
|
||||
|
@ -12801,19 +12731,6 @@ argf_each_byte(VALUE argf)
|
|||
return argf;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_byte.
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
argf_bytes(VALUE argf)
|
||||
{
|
||||
rb_warn_deprecated("ARGF#bytes", "#each_byte");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(argf, ID2SYM(rb_intern("each_byte")), 0, 0);
|
||||
return argf_each_byte(argf);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* ARGF.each_char {|char| block } -> ARGF
|
||||
|
@ -12840,19 +12757,6 @@ argf_each_char(VALUE argf)
|
|||
return argf;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_char.
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
argf_chars(VALUE argf)
|
||||
{
|
||||
rb_warn_deprecated("ARGF#chars", "#each_char");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(argf, ID2SYM(rb_intern("each_char")), 0, 0);
|
||||
return argf_each_char(argf);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* ARGF.each_codepoint {|codepoint| block } -> ARGF
|
||||
|
@ -12879,19 +12783,6 @@ argf_each_codepoint(VALUE argf)
|
|||
return argf;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a deprecated alias for #each_codepoint.
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
argf_codepoints(VALUE argf)
|
||||
{
|
||||
rb_warn_deprecated("ARGF#codepoints", "#each_codepoint");
|
||||
if (!rb_block_given_p())
|
||||
return rb_enumeratorize(argf, ID2SYM(rb_intern("each_codepoint")), 0, 0);
|
||||
return argf_each_codepoint(argf);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* ARGF.filename -> String
|
||||
|
@ -13555,10 +13446,6 @@ Init_IO(void)
|
|||
rb_define_method(rb_cIO, "each_byte", rb_io_each_byte, 0);
|
||||
rb_define_method(rb_cIO, "each_char", rb_io_each_char, 0);
|
||||
rb_define_method(rb_cIO, "each_codepoint", rb_io_each_codepoint, 0);
|
||||
rb_define_method(rb_cIO, "lines", rb_io_lines, -1);
|
||||
rb_define_method(rb_cIO, "bytes", rb_io_bytes, 0);
|
||||
rb_define_method(rb_cIO, "chars", rb_io_chars, 0);
|
||||
rb_define_method(rb_cIO, "codepoints", rb_io_codepoints, 0);
|
||||
|
||||
rb_define_method(rb_cIO, "syswrite", rb_io_syswrite, 1);
|
||||
rb_define_method(rb_cIO, "sysread", rb_io_sysread, -1);
|
||||
|
@ -13697,10 +13584,6 @@ Init_IO(void)
|
|||
rb_define_method(rb_cARGF, "each_byte", argf_each_byte, 0);
|
||||
rb_define_method(rb_cARGF, "each_char", argf_each_char, 0);
|
||||
rb_define_method(rb_cARGF, "each_codepoint", argf_each_codepoint, 0);
|
||||
rb_define_method(rb_cARGF, "lines", argf_lines, -1);
|
||||
rb_define_method(rb_cARGF, "bytes", argf_bytes, 0);
|
||||
rb_define_method(rb_cARGF, "chars", argf_chars, 0);
|
||||
rb_define_method(rb_cARGF, "codepoints", argf_codepoints, 0);
|
||||
|
||||
rb_define_method(rb_cARGF, "read", argf_read, -1);
|
||||
rb_define_method(rb_cARGF, "readpartial", argf_readpartial, -1);
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative 'shared/each_byte'
|
||||
|
||||
describe "ARGF.bytes" do
|
||||
it_behaves_like :argf_each_byte, :bytes
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "ARGF.bytes" do
|
||||
it_behaves_like :argf_each_byte, :bytes
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative 'shared/each_char'
|
||||
|
||||
describe "ARGF.chars" do
|
||||
it_behaves_like :argf_each_char, :chars
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "ARGF.chars" do
|
||||
it_behaves_like :argf_each_char, :chars
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative 'shared/each_codepoint'
|
||||
|
||||
describe "ARGF.codepoints" do
|
||||
it_behaves_like :argf_each_codepoint, :codepoints
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "ARGF.codepoints" do
|
||||
it_behaves_like :argf_each_codepoint, :codepoints
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative 'shared/each_line'
|
||||
|
||||
describe "ARGF.lines" do
|
||||
it_behaves_like :argf_each_line, :lines
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "ARGF.lines" do
|
||||
it_behaves_like :argf_each_line, :lines
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,42 +2,44 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative 'fixtures/classes'
|
||||
|
||||
describe "IO#bytes" do
|
||||
before :each do
|
||||
@io = IOSpecs.io_fixture "lines.txt"
|
||||
end
|
||||
|
||||
after :each do
|
||||
@io.close unless @io.closed?
|
||||
end
|
||||
|
||||
it "returns an enumerator of the next bytes from the stream" do
|
||||
enum = @io.bytes
|
||||
enum.should be_an_instance_of(Enumerator)
|
||||
@io.readline.should == "Voici la ligne une.\n"
|
||||
enum.first(5).should == [81, 117, 105, 32, 195]
|
||||
end
|
||||
|
||||
it "yields each byte" do
|
||||
count = 0
|
||||
ScratchPad.record []
|
||||
@io.each_byte do |byte|
|
||||
ScratchPad << byte
|
||||
break if 4 < count += 1
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "IO#bytes" do
|
||||
before :each do
|
||||
@io = IOSpecs.io_fixture "lines.txt"
|
||||
end
|
||||
|
||||
ScratchPad.recorded.should == [86, 111, 105, 99, 105]
|
||||
end
|
||||
after :each do
|
||||
@io.close unless @io.closed?
|
||||
end
|
||||
|
||||
it "raises an IOError on closed stream" do
|
||||
enum = IOSpecs.closed_io.bytes
|
||||
-> { enum.first }.should raise_error(IOError)
|
||||
end
|
||||
it "returns an enumerator of the next bytes from the stream" do
|
||||
enum = @io.bytes
|
||||
enum.should be_an_instance_of(Enumerator)
|
||||
@io.readline.should == "Voici la ligne une.\n"
|
||||
enum.first(5).should == [81, 117, 105, 32, 195]
|
||||
end
|
||||
|
||||
it "raises an IOError on an enumerator for a stream that has been closed" do
|
||||
enum = @io.bytes
|
||||
enum.first.should == 86
|
||||
@io.close
|
||||
-> { enum.first }.should raise_error(IOError)
|
||||
it "yields each byte" do
|
||||
count = 0
|
||||
ScratchPad.record []
|
||||
@io.each_byte do |byte|
|
||||
ScratchPad << byte
|
||||
break if 4 < count += 1
|
||||
end
|
||||
|
||||
ScratchPad.recorded.should == [86, 111, 105, 99, 105]
|
||||
end
|
||||
|
||||
it "raises an IOError on closed stream" do
|
||||
enum = IOSpecs.closed_io.bytes
|
||||
-> { enum.first }.should raise_error(IOError)
|
||||
end
|
||||
|
||||
it "raises an IOError on an enumerator for a stream that has been closed" do
|
||||
enum = @io.bytes
|
||||
enum.first.should == 86
|
||||
@io.close
|
||||
-> { enum.first }.should raise_error(IOError)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,10 +3,12 @@ require_relative '../../spec_helper'
|
|||
require_relative 'fixtures/classes'
|
||||
require_relative 'shared/chars'
|
||||
|
||||
describe "IO#chars" do
|
||||
it_behaves_like :io_chars, :chars
|
||||
end
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "IO#chars" do
|
||||
it_behaves_like :io_chars, :chars
|
||||
end
|
||||
|
||||
describe "IO#chars" do
|
||||
it_behaves_like :io_chars_empty, :chars
|
||||
describe "IO#chars" do
|
||||
it_behaves_like :io_chars_empty, :chars
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,24 +2,27 @@ require_relative '../../spec_helper'
|
|||
require_relative 'fixtures/classes'
|
||||
require_relative 'shared/codepoints'
|
||||
|
||||
# See redmine #1667
|
||||
describe "IO#codepoints" do
|
||||
it_behaves_like :io_codepoints, :codepoints
|
||||
end
|
||||
ruby_version_is ''...'2.8' do
|
||||
|
||||
describe "IO#codepoints" do
|
||||
before :each do
|
||||
@io = IOSpecs.io_fixture "lines.txt"
|
||||
# See redmine #1667
|
||||
describe "IO#codepoints" do
|
||||
it_behaves_like :io_codepoints, :codepoints
|
||||
end
|
||||
|
||||
after :each do
|
||||
@io.close unless @io.closed?
|
||||
end
|
||||
describe "IO#codepoints" do
|
||||
before :each do
|
||||
@io = IOSpecs.io_fixture "lines.txt"
|
||||
end
|
||||
|
||||
it "calls the given block" do
|
||||
r = []
|
||||
@io.codepoints { |c| r << c }
|
||||
r[24].should == 232
|
||||
r.last.should == 10
|
||||
after :each do
|
||||
@io.close unless @io.closed?
|
||||
end
|
||||
|
||||
it "calls the given block" do
|
||||
r = []
|
||||
@io.codepoints { |c| r << c }
|
||||
r[24].should == 232
|
||||
r.last.should == 10
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,7 +4,7 @@ require_relative 'shared/codepoints'
|
|||
|
||||
# See redmine #1667
|
||||
describe "IO#each_codepoint" do
|
||||
it_behaves_like :io_codepoints, :codepoints
|
||||
it_behaves_like :io_codepoints, :each_codepoint
|
||||
end
|
||||
|
||||
describe "IO#each_codepoint" do
|
||||
|
|
|
@ -2,41 +2,43 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative 'fixtures/classes'
|
||||
|
||||
describe "IO#lines" do
|
||||
before :each do
|
||||
@io = IOSpecs.io_fixture "lines.txt"
|
||||
end
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "IO#lines" do
|
||||
before :each do
|
||||
@io = IOSpecs.io_fixture "lines.txt"
|
||||
end
|
||||
|
||||
after :each do
|
||||
@io.close if @io
|
||||
end
|
||||
after :each do
|
||||
@io.close if @io
|
||||
end
|
||||
|
||||
it "returns an Enumerator" do
|
||||
@io.lines.should be_an_instance_of(Enumerator)
|
||||
end
|
||||
|
||||
describe "when no block is given" do
|
||||
it "returns an Enumerator" do
|
||||
@io.lines.should be_an_instance_of(Enumerator)
|
||||
end
|
||||
|
||||
describe "returned Enumerator" do
|
||||
describe "size" do
|
||||
it "should return nil" do
|
||||
@io.lines.size.should == nil
|
||||
describe "when no block is given" do
|
||||
it "returns an Enumerator" do
|
||||
@io.lines.should be_an_instance_of(Enumerator)
|
||||
end
|
||||
|
||||
describe "returned Enumerator" do
|
||||
describe "size" do
|
||||
it "should return nil" do
|
||||
@io.lines.size.should == nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it "returns a line when accessed" do
|
||||
enum = @io.lines
|
||||
enum.first.should == IOSpecs.lines[0]
|
||||
end
|
||||
it "returns a line when accessed" do
|
||||
enum = @io.lines
|
||||
enum.first.should == IOSpecs.lines[0]
|
||||
end
|
||||
|
||||
it "yields each line to the passed block" do
|
||||
ScratchPad.record []
|
||||
@io.lines { |s| ScratchPad << s }
|
||||
ScratchPad.recorded.should == IOSpecs.lines
|
||||
it "yields each line to the passed block" do
|
||||
ScratchPad.record []
|
||||
@io.lines { |s| ScratchPad << s }
|
||||
ScratchPad.recorded.should == IOSpecs.lines
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,10 +2,12 @@ require_relative '../../spec_helper'
|
|||
require 'stringio'
|
||||
require_relative 'shared/each_byte'
|
||||
|
||||
describe "StringIO#bytes" do
|
||||
it_behaves_like :stringio_each_byte, :bytes
|
||||
end
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "StringIO#bytes" do
|
||||
it_behaves_like :stringio_each_byte, :bytes
|
||||
end
|
||||
|
||||
describe "StringIO#bytes when self is not readable" do
|
||||
it_behaves_like :stringio_each_byte_not_readable, :bytes
|
||||
describe "StringIO#bytes when self is not readable" do
|
||||
it_behaves_like :stringio_each_byte_not_readable, :bytes
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,10 +2,12 @@ require_relative '../../spec_helper'
|
|||
require 'stringio'
|
||||
require_relative 'shared/each_char'
|
||||
|
||||
describe "StringIO#chars" do
|
||||
it_behaves_like :stringio_each_char, :chars
|
||||
end
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "StringIO#chars" do
|
||||
it_behaves_like :stringio_each_char, :chars
|
||||
end
|
||||
|
||||
describe "StringIO#chars when self is not readable" do
|
||||
it_behaves_like :stringio_each_char_not_readable, :chars
|
||||
describe "StringIO#chars when self is not readable" do
|
||||
it_behaves_like :stringio_each_char_not_readable, :chars
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,10 @@ require_relative '../../spec_helper'
|
|||
require_relative 'fixtures/classes'
|
||||
require_relative 'shared/codepoints'
|
||||
|
||||
# See redmine #1667
|
||||
describe "StringIO#codepoints" do
|
||||
it_behaves_like :stringio_codepoints, :codepoints
|
||||
ruby_version_is ''...'2.8' do
|
||||
|
||||
# See redmine #1667
|
||||
describe "StringIO#codepoints" do
|
||||
it_behaves_like :stringio_codepoints, :codepoints
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,5 +7,5 @@ describe "StringIO#each_char" do
|
|||
end
|
||||
|
||||
describe "StringIO#each_char when self is not readable" do
|
||||
it_behaves_like :stringio_each_char_not_readable, :chars
|
||||
it_behaves_like :stringio_each_char_not_readable, :each_char
|
||||
end
|
||||
|
|
|
@ -5,5 +5,5 @@ require_relative 'shared/codepoints'
|
|||
|
||||
# See redmine #1667
|
||||
describe "StringIO#each_codepoint" do
|
||||
it_behaves_like :stringio_codepoints, :codepoints
|
||||
it_behaves_like :stringio_codepoints, :each_codepoint
|
||||
end
|
||||
|
|
|
@ -2,18 +2,20 @@ require_relative '../../spec_helper'
|
|||
require 'stringio'
|
||||
require_relative 'shared/each'
|
||||
|
||||
describe "StringIO#lines when passed a separator" do
|
||||
it_behaves_like :stringio_each_separator, :lines
|
||||
end
|
||||
ruby_version_is ''...'2.8' do
|
||||
describe "StringIO#lines when passed a separator" do
|
||||
it_behaves_like :stringio_each_separator, :lines
|
||||
end
|
||||
|
||||
describe "StringIO#lines when passed no arguments" do
|
||||
it_behaves_like :stringio_each_no_arguments, :lines
|
||||
end
|
||||
describe "StringIO#lines when passed no arguments" do
|
||||
it_behaves_like :stringio_each_no_arguments, :lines
|
||||
end
|
||||
|
||||
describe "StringIO#lines when self is not readable" do
|
||||
it_behaves_like :stringio_each_not_readable, :lines
|
||||
end
|
||||
describe "StringIO#lines when self is not readable" do
|
||||
it_behaves_like :stringio_each_not_readable, :lines
|
||||
end
|
||||
|
||||
describe "StringIO#lines when passed chomp" do
|
||||
it_behaves_like :stringio_each_chomp, :lines
|
||||
describe "StringIO#lines when passed chomp" do
|
||||
it_behaves_like :stringio_each_chomp, :lines
|
||||
end
|
||||
end
|
||||
|
|
|
@ -998,43 +998,10 @@ class TestArgf < Test::Unit::TestCase
|
|||
assert_ruby_status(["-e", "2.times {STDIN.tty?; readlines}"], "", bug5952)
|
||||
end
|
||||
|
||||
def test_lines
|
||||
def test_each_codepoint
|
||||
ruby('-W1', '-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
|
||||
{#
|
||||
$stderr = $stdout
|
||||
s = []
|
||||
ARGF.lines {|l| s << l }
|
||||
p s
|
||||
};
|
||||
assert_equal("[\"1\\n\", \"2\\n\", \"3\\n\", \"4\\n\", \"5\\n\", \"6\\n\"]\n", f.read)
|
||||
end
|
||||
end
|
||||
|
||||
def test_bytes
|
||||
ruby('-W1', '-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
|
||||
{#
|
||||
$stderr = $stdout
|
||||
print Marshal.dump(ARGF.bytes.to_a)
|
||||
};
|
||||
assert_equal([49, 10, 50, 10, 51, 10, 52, 10, 53, 10, 54, 10], Marshal.load(f.read))
|
||||
end
|
||||
end
|
||||
|
||||
def test_chars
|
||||
ruby('-W1', '-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
|
||||
{#
|
||||
$stderr = $stdout
|
||||
print [Marshal.dump(ARGF.chars.to_a)].pack('m')
|
||||
};
|
||||
assert_equal(["1", "\n", "2", "\n", "3", "\n", "4", "\n", "5", "\n", "6", "\n"], Marshal.load(f.read.unpack('m').first))
|
||||
end
|
||||
end
|
||||
|
||||
def test_codepoints
|
||||
ruby('-W1', '-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
|
||||
{#
|
||||
$stderr = $stdout
|
||||
print Marshal.dump(ARGF.codepoints.to_a)
|
||||
print Marshal.dump(ARGF.each_codepoint.to_a)
|
||||
};
|
||||
assert_equal([49, 10, 50, 10, 51, 10, 52, 10, 53, 10, 54, 10], Marshal.load(f.read))
|
||||
end
|
||||
|
|
|
@ -405,19 +405,6 @@ class TestIO < Test::Unit::TestCase
|
|||
}
|
||||
end
|
||||
|
||||
def test_each_codepoint_enumerator
|
||||
make_tempfile {|t|
|
||||
a = ""
|
||||
b = ""
|
||||
File.open(t, 'rt') {|f|
|
||||
a = f.each_codepoint.take(4).pack('U*')
|
||||
b = f.read(8)
|
||||
}
|
||||
assert_equal("foo\n", a)
|
||||
assert_equal("bar\nbaz\n", b)
|
||||
}
|
||||
end
|
||||
|
||||
def test_rubydev33072
|
||||
t = make_tempfile
|
||||
path = t.path
|
||||
|
@ -1822,6 +1809,61 @@ class TestIO < Test::Unit::TestCase
|
|||
end)
|
||||
end
|
||||
|
||||
def test_each_line
|
||||
pipe(proc do |w|
|
||||
w.puts "foo"
|
||||
w.puts "bar"
|
||||
w.puts "baz"
|
||||
w.close
|
||||
end, proc do |r|
|
||||
e = nil
|
||||
assert_warn('') {
|
||||
e = r.each_line
|
||||
}
|
||||
assert_equal("foo\n", e.next)
|
||||
assert_equal("bar\n", e.next)
|
||||
assert_equal("baz\n", e.next)
|
||||
assert_raise(StopIteration) { e.next }
|
||||
end)
|
||||
end
|
||||
|
||||
def test_each_byte
|
||||
pipe(proc do |w|
|
||||
w.binmode
|
||||
w.puts "foo"
|
||||
w.puts "bar"
|
||||
w.puts "baz"
|
||||
w.close
|
||||
end, proc do |r|
|
||||
e = nil
|
||||
assert_warn('') {
|
||||
e = r.each_byte
|
||||
}
|
||||
(%w(f o o) + ["\n"] + %w(b a r) + ["\n"] + %w(b a z) + ["\n"]).each do |c|
|
||||
assert_equal(c.ord, e.next)
|
||||
end
|
||||
assert_raise(StopIteration) { e.next }
|
||||
end)
|
||||
end
|
||||
|
||||
def test_each_char
|
||||
pipe(proc do |w|
|
||||
w.puts "foo"
|
||||
w.puts "bar"
|
||||
w.puts "baz"
|
||||
w.close
|
||||
end, proc do |r|
|
||||
e = nil
|
||||
assert_warn('') {
|
||||
e = r.each_char
|
||||
}
|
||||
(%w(f o o) + ["\n"] + %w(b a r) + ["\n"] + %w(b a z) + ["\n"]).each do |c|
|
||||
assert_equal(c, e.next)
|
||||
end
|
||||
assert_raise(StopIteration) { e.next }
|
||||
end)
|
||||
end
|
||||
|
||||
def test_readbyte
|
||||
pipe(proc do |w|
|
||||
w.binmode
|
||||
|
|
Loading…
Reference in a new issue