From 43b95bafd57d04c8fb401d3a9b52aca3f5b4b0be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=9C=E9=83=A8=E6=98=8C=E5=B9=B3?= Date: Mon, 27 Jul 2020 11:15:50 +0900 Subject: delete deprecated IO-like methods This commit deletes {IO,ARGF,StringIO,Zib::GZipReader}#{bytes,chars,lines,codepoints}, which have been deprecated since c47c095b9740e7c19d6fdca29ab661c1089221d4. Note that String also has those methods. They are neither depreacted nor deleted because they are not aliases of counterpart each_something. --- ext/stringio/stringio.c | 52 ---------- ext/zlib/zlib.c | 30 ------ io.c | 117 ---------------------- spec/ruby/core/argf/bytes_spec.rb | 6 +- spec/ruby/core/argf/chars_spec.rb | 6 +- spec/ruby/core/argf/codepoints_spec.rb | 6 +- spec/ruby/core/argf/lines_spec.rb | 6 +- spec/ruby/core/io/bytes_spec.rb | 64 ++++++------ spec/ruby/core/io/chars_spec.rb | 12 ++- spec/ruby/core/io/codepoints_spec.rb | 33 +++--- spec/ruby/core/io/each_codepoint_spec.rb | 2 +- spec/ruby/core/io/lines_spec.rb | 52 +++++----- spec/ruby/library/stringio/bytes_spec.rb | 12 ++- spec/ruby/library/stringio/chars_spec.rb | 12 ++- spec/ruby/library/stringio/codepoints_spec.rb | 9 +- spec/ruby/library/stringio/each_char_spec.rb | 2 +- spec/ruby/library/stringio/each_codepoint_spec.rb | 2 +- spec/ruby/library/stringio/lines_spec.rb | 24 +++-- test/ruby/test_argf.rb | 37 +------ test/ruby/test_io.rb | 68 ++++++++++--- 20 files changed, 194 insertions(+), 358 deletions(-) diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c index a380d2fffc..bb7c0e6e4e 100644 --- a/ext/stringio/stringio.c +++ b/ext/stringio/stringio.c @@ -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); diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index bc41b55491..c8b206f95e 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -4003,20 +4003,6 @@ rb_gzreader_each_byte(VALUE obj) return Qnil; } -/* - * Document-method: Zlib::GzipReader#bytes - * - * This is a deprecated alias for each_byte. - */ -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 each_line. - */ -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); diff --git a/io.c b/io.c index ca59729e7a..0182042b39 100644 --- a/io.c +++ b/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); diff --git a/spec/ruby/core/argf/bytes_spec.rb b/spec/ruby/core/argf/bytes_spec.rb index 71d07fabcb..58a7082fd2 100644 --- a/spec/ruby/core/argf/bytes_spec.rb +++ b/spec/ruby/core/argf/bytes_spec.rb @@ -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 diff --git a/spec/ruby/core/argf/chars_spec.rb b/spec/ruby/core/argf/chars_spec.rb index ee79ea763b..b5105effdf 100644 --- a/spec/ruby/core/argf/chars_spec.rb +++ b/spec/ruby/core/argf/chars_spec.rb @@ -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 diff --git a/spec/ruby/core/argf/codepoints_spec.rb b/spec/ruby/core/argf/codepoints_spec.rb index 7aa8a761fe..d7b9d08aaa 100644 --- a/spec/ruby/core/argf/codepoints_spec.rb +++ b/spec/ruby/core/argf/codepoints_spec.rb @@ -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 diff --git a/spec/ruby/core/argf/lines_spec.rb b/spec/ruby/core/argf/lines_spec.rb index 6ca6ff1256..620db4312f 100644 --- a/spec/ruby/core/argf/lines_spec.rb +++ b/spec/ruby/core/argf/lines_spec.rb @@ -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 diff --git a/spec/ruby/core/io/bytes_spec.rb b/spec/ruby/core/io/bytes_spec.rb index feeb493566..f0e993e8f0 100644 --- a/spec/ruby/core/io/bytes_spec.rb +++ b/spec/ruby/core/io/bytes_spec.rb @@ -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 +ruby_version_is ''...'2.8' do + describe "IO#bytes" do + before :each do + @io = IOSpecs.io_fixture "lines.txt" + 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 + after :each do + @io.close unless @io.closed? + end - it "yields each byte" do - count = 0 - ScratchPad.record [] - @io.each_byte do |byte| - ScratchPad << byte - break if 4 < count += 1 + 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 - ScratchPad.recorded.should == [86, 111, 105, 99, 105] - end + it "yields each byte" do + count = 0 + ScratchPad.record [] + @io.each_byte do |byte| + ScratchPad << byte + break if 4 < count += 1 + end - it "raises an IOError on closed stream" do - enum = IOSpecs.closed_io.bytes - -> { enum.first }.should raise_error(IOError) - end + ScratchPad.recorded.should == [86, 111, 105, 99, 105] + 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 "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 diff --git a/spec/ruby/core/io/chars_spec.rb b/spec/ruby/core/io/chars_spec.rb index cd5dbbce4f..2efbdd7333 100644 --- a/spec/ruby/core/io/chars_spec.rb +++ b/spec/ruby/core/io/chars_spec.rb @@ -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 diff --git a/spec/ruby/core/io/codepoints_spec.rb b/spec/ruby/core/io/codepoints_spec.rb index 915d99c027..1138989427 100644 --- a/spec/ruby/core/io/codepoints_spec.rb +++ b/spec/ruby/core/io/codepoints_spec.rb @@ -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 + + 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 + it "calls the given block" do + r = [] + @io.codepoints { |c| r << c } + r[24].should == 232 + r.last.should == 10 + end end end diff --git a/spec/ruby/core/io/each_codepoint_spec.rb b/spec/ruby/core/io/each_codepoint_spec.rb index cddc6b4662..07a4037c8a 100644 --- a/spec/ruby/core/io/each_codepoint_spec.rb +++ b/spec/ruby/core/io/each_codepoint_spec.rb @@ -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 diff --git a/spec/ruby/core/io/lines_spec.rb b/spec/ruby/core/io/lines_spec.rb index a8b8023a2a..dcf5825259 100644 --- a/spec/ruby/core/io/lines_spec.rb +++ b/spec/ruby/core/io/lines_spec.rb @@ -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 - - after :each do - @io.close if @io - end +ruby_version_is ''...'2.8' do + describe "IO#lines" do + before :each do + @io = IOSpecs.io_fixture "lines.txt" + end - it "returns an Enumerator" do - @io.lines.should be_an_instance_of(Enumerator) - end + after :each do + @io.close if @io + 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 diff --git a/spec/ruby/library/stringio/bytes_spec.rb b/spec/ruby/library/stringio/bytes_spec.rb index 692fba997f..bf0d27615e 100644 --- a/spec/ruby/library/stringio/bytes_spec.rb +++ b/spec/ruby/library/stringio/bytes_spec.rb @@ -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 diff --git a/spec/ruby/library/stringio/chars_spec.rb b/spec/ruby/library/stringio/chars_spec.rb index 7dc55d4b37..e3879c2cff 100644 --- a/spec/ruby/library/stringio/chars_spec.rb +++ b/spec/ruby/library/stringio/chars_spec.rb @@ -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 diff --git a/spec/ruby/library/stringio/codepoints_spec.rb b/spec/ruby/library/stringio/codepoints_spec.rb index cc2e5d1b5d..6ca395c964 100644 --- a/spec/ruby/library/stringio/codepoints_spec.rb +++ b/spec/ruby/library/stringio/codepoints_spec.rb @@ -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 diff --git a/spec/ruby/library/stringio/each_char_spec.rb b/spec/ruby/library/stringio/each_char_spec.rb index 7305162ee6..14b2f09a17 100644 --- a/spec/ruby/library/stringio/each_char_spec.rb +++ b/spec/ruby/library/stringio/each_char_spec.rb @@ -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 diff --git a/spec/ruby/library/stringio/each_codepoint_spec.rb b/spec/ruby/library/stringio/each_codepoint_spec.rb index 85aa34d9d8..f18de22aad 100644 --- a/spec/ruby/library/stringio/each_codepoint_spec.rb +++ b/spec/ruby/library/stringio/each_codepoint_spec.rb @@ -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 diff --git a/spec/ruby/library/stringio/lines_spec.rb b/spec/ruby/library/stringio/lines_spec.rb index d9dd26c2e2..0a2ab0d817 100644 --- a/spec/ruby/library/stringio/lines_spec.rb +++ b/spec/ruby/library/stringio/lines_spec.rb @@ -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 diff --git a/test/ruby/test_argf.rb b/test/ruby/test_argf.rb index e558f7648d..6262514241 100644 --- a/test/ruby/test_argf.rb +++ b/test/ruby/test_argf.rb @@ -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 diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index f02ce6d31a..9ce05e93fd 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -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 -- cgit v1.2.3