1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

merge revision(s) 9241211538: [Backport #17589]

Forward keyword arguments for Pathname#each_line [Bug #17589]

	---
	 ext/pathname/pathname.c        |  4 ++--
	 test/pathname/test_pathname.rb | 26 ++++++++++++++++++++++++++
	 2 files changed, 28 insertions(+), 2 deletions(-)
This commit is contained in:
NARUSE, Yui 2021-02-02 17:50:36 +09:00
parent 2dc39e2fd4
commit 3cebc70953
3 changed files with 29 additions and 3 deletions

View file

@ -360,10 +360,10 @@ path_each_line(int argc, VALUE *argv, VALUE self)
args[0] = get_strpath(self);
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
if (rb_block_given_p()) {
return rb_block_call(rb_cFile, id_foreach, 1+n, args, 0, 0);
return rb_block_call_kw(rb_cFile, id_foreach, 1+n, args, 0, 0, RB_PASS_CALLED_KEYWORDS);
}
else {
return rb_funcallv(rb_cFile, id_foreach, 1+n, args);
return rb_funcallv_kw(rb_cFile, id_foreach, 1+n, args, RB_PASS_CALLED_KEYWORDS);
}
}

View file

@ -707,6 +707,32 @@ class TestPathname < Test::Unit::TestCase
}
end
def test_each_line_opts
with_tmpchdir('rubytest-pathname') {|dir|
open("a", "w") {|f| f.puts 1, 2 }
a = []
Pathname("a").each_line(chomp: true) {|line| a << line }
assert_equal(["1", "2"], a)
a = []
Pathname("a").each_line("2", chomp: true) {|line| a << line }
assert_equal(["1\n", "\n"], a)
a = []
Pathname("a").each_line(1, chomp: true) {|line| a << line }
assert_equal(["1", "", "2", ""], a)
a = []
Pathname("a").each_line("2", 1, chomp: true) {|line| a << line }
assert_equal(["1", "\n", "", "\n"], a)
a = []
enum = Pathname("a").each_line(chomp: true)
enum.each {|line| a << line }
assert_equal(["1", "2"], a)
}
end
def test_readlines
with_tmpchdir('rubytest-pathname') {|dir|
open("a", "w") {|f| f.puts 1, 2 }

View file

@ -12,7 +12,7 @@
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
#define RUBY_PATCHLEVEL 29
#define RUBY_PATCHLEVEL 30
#define RUBY_RELEASE_YEAR 2021
#define RUBY_RELEASE_MONTH 2