mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Fix more keyword argument separation issues in Pathname
This commit is contained in:
parent
3959469f24
commit
47d44510a3
Notes:
git
2019-09-27 00:02:32 +09:00
2 changed files with 37 additions and 5 deletions
|
@ -434,7 +434,7 @@ path_write(int argc, VALUE *argv, VALUE self)
|
||||||
|
|
||||||
args[0] = get_strpath(self);
|
args[0] = get_strpath(self);
|
||||||
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
|
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
|
||||||
return rb_funcallv(rb_cFile, id_write, 1+n, args);
|
return rb_funcallv_kw(rb_cFile, id_write, 1+n, args, RB_PASS_CALLED_KEYWORDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -455,7 +455,7 @@ path_binwrite(int argc, VALUE *argv, VALUE self)
|
||||||
|
|
||||||
args[0] = get_strpath(self);
|
args[0] = get_strpath(self);
|
||||||
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
|
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
|
||||||
return rb_funcallv(rb_cFile, id_binwrite, 1+n, args);
|
return rb_funcallv_kw(rb_cFile, id_binwrite, 1+n, args, RB_PASS_CALLED_KEYWORDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -477,7 +477,7 @@ path_readlines(int argc, VALUE *argv, VALUE self)
|
||||||
|
|
||||||
args[0] = get_strpath(self);
|
args[0] = get_strpath(self);
|
||||||
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
|
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
|
||||||
return rb_funcallv(rb_cFile, id_readlines, 1+n, args);
|
return rb_funcallv_kw(rb_cFile, id_readlines, 1+n, args, RB_PASS_CALLED_KEYWORDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -678,10 +678,10 @@ path_open(int argc, VALUE *argv, VALUE self)
|
||||||
args[0] = get_strpath(self);
|
args[0] = get_strpath(self);
|
||||||
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
|
n = rb_scan_args(argc, argv, "03", &args[1], &args[2], &args[3]);
|
||||||
if (rb_block_given_p()) {
|
if (rb_block_given_p()) {
|
||||||
return rb_block_call(rb_cFile, id_open, 1+n, args, 0, 0);
|
return rb_block_call_kw(rb_cFile, id_open, 1+n, args, 0, 0, RB_PASS_CALLED_KEYWORDS);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return rb_funcallv(rb_cFile, id_open, 1+n, args);
|
return rb_funcallv_kw(rb_cFile, id_open, 1+n, args, RB_PASS_CALLED_KEYWORDS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -745,6 +745,14 @@ class TestPathname < Test::Unit::TestCase
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_readlines_opts
|
||||||
|
with_tmpchdir('rubytest-pathname') {|dir|
|
||||||
|
open("a", "w") {|f| f.puts 1, 2 }
|
||||||
|
a = Pathname("a").readlines 1, chomp: true
|
||||||
|
assert_equal(["1", "", "2", ""], a)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def test_read
|
def test_read
|
||||||
with_tmpchdir('rubytest-pathname') {|dir|
|
with_tmpchdir('rubytest-pathname') {|dir|
|
||||||
open("a", "w") {|f| f.puts 1, 2 }
|
open("a", "w") {|f| f.puts 1, 2 }
|
||||||
|
@ -769,6 +777,14 @@ class TestPathname < Test::Unit::TestCase
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_write_opts
|
||||||
|
with_tmpchdir('rubytest-pathname') {|dir|
|
||||||
|
path = Pathname("a")
|
||||||
|
path.write "abc", mode: "w"
|
||||||
|
assert_equal("abc", path.read)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def test_binwrite
|
def test_binwrite
|
||||||
with_tmpchdir('rubytest-pathname') {|dir|
|
with_tmpchdir('rubytest-pathname') {|dir|
|
||||||
path = Pathname("a")
|
path = Pathname("a")
|
||||||
|
@ -777,6 +793,14 @@ class TestPathname < Test::Unit::TestCase
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_binwrite_opts
|
||||||
|
with_tmpchdir('rubytest-pathname') {|dir|
|
||||||
|
path = Pathname("a")
|
||||||
|
path.binwrite "abc\x80", mode: 'w'
|
||||||
|
assert_equal("abc\x80".b, path.binread)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def test_sysopen
|
def test_sysopen
|
||||||
with_tmpchdir('rubytest-pathname') {|dir|
|
with_tmpchdir('rubytest-pathname') {|dir|
|
||||||
open("a", "w") {|f| f.write "abc" }
|
open("a", "w") {|f| f.write "abc" }
|
||||||
|
@ -929,6 +953,10 @@ class TestPathname < Test::Unit::TestCase
|
||||||
assert_equal("abc", f.read)
|
assert_equal("abc", f.read)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
path.open(mode: "r") {|f|
|
||||||
|
assert_equal("abc", f.read)
|
||||||
|
}
|
||||||
|
|
||||||
Pathname("b").open("w", 0444) {|f| f.write "def" }
|
Pathname("b").open("w", 0444) {|f| f.write "def" }
|
||||||
assert_equal(0444 & ~File.umask, File.stat("b").mode & 0777)
|
assert_equal(0444 & ~File.umask, File.stat("b").mode & 0777)
|
||||||
assert_equal("def", File.read("b"))
|
assert_equal("def", File.read("b"))
|
||||||
|
@ -940,6 +968,10 @@ class TestPathname < Test::Unit::TestCase
|
||||||
g = path.open
|
g = path.open
|
||||||
assert_equal("abc", g.read)
|
assert_equal("abc", g.read)
|
||||||
g.close
|
g.close
|
||||||
|
|
||||||
|
g = path.open(mode: "r")
|
||||||
|
assert_equal("abc", g.read)
|
||||||
|
g.close
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue