summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/pathname/pathname.c4
-rw-r--r--test/pathname/test_pathname.rb26
-rw-r--r--version.h2
3 files changed, 29 insertions, 3 deletions
diff --git a/ext/pathname/pathname.c b/ext/pathname/pathname.c
index 15f80d487e..0f4854580e 100644
--- a/ext/pathname/pathname.c
+++ b/ext/pathname/pathname.c
@@ -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);
}
}
diff --git a/test/pathname/test_pathname.rb b/test/pathname/test_pathname.rb
index 2ce32a6c12..e5168d5e2e 100644
--- a/test/pathname/test_pathname.rb
+++ b/test/pathname/test_pathname.rb
@@ -690,6 +690,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 }
diff --git a/version.h b/version.h
index 04c8aa21ba..b0d01d94ab 100644
--- a/version.h
+++ b/version.h
@@ -2,7 +2,7 @@
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
#define RUBY_VERSION_TEENY 3
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
-#define RUBY_PATCHLEVEL 158
+#define RUBY_PATCHLEVEL 159
#define RUBY_RELEASE_YEAR 2021
#define RUBY_RELEASE_MONTH 2