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);
 | 
			
		||||
    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);
 | 
			
		||||
    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);
 | 
			
		||||
    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);
 | 
			
		||||
    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_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 {
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
  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
 | 
			
		||||
    with_tmpchdir('rubytest-pathname') {|dir|
 | 
			
		||||
      open("a", "w") {|f| f.puts 1, 2 }
 | 
			
		||||
| 
						 | 
				
			
			@ -769,6 +777,14 @@ class TestPathname < Test::Unit::TestCase
 | 
			
		|||
    }
 | 
			
		||||
  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
 | 
			
		||||
    with_tmpchdir('rubytest-pathname') {|dir|
 | 
			
		||||
      path = Pathname("a")
 | 
			
		||||
| 
						 | 
				
			
			@ -777,6 +793,14 @@ class TestPathname < Test::Unit::TestCase
 | 
			
		|||
    }
 | 
			
		||||
  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
 | 
			
		||||
    with_tmpchdir('rubytest-pathname') {|dir|
 | 
			
		||||
      open("a", "w") {|f| f.write "abc" }
 | 
			
		||||
| 
						 | 
				
			
			@ -929,6 +953,10 @@ class TestPathname < Test::Unit::TestCase
 | 
			
		|||
        assert_equal("abc", f.read)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      path.open(mode: "r") {|f|
 | 
			
		||||
        assert_equal("abc", f.read)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      Pathname("b").open("w", 0444) {|f| f.write "def" }
 | 
			
		||||
      assert_equal(0444 & ~File.umask, File.stat("b").mode & 0777)
 | 
			
		||||
      assert_equal("def", File.read("b"))
 | 
			
		||||
| 
						 | 
				
			
			@ -940,6 +968,10 @@ class TestPathname < Test::Unit::TestCase
 | 
			
		|||
      g = path.open
 | 
			
		||||
      assert_equal("abc", g.read)
 | 
			
		||||
      g.close
 | 
			
		||||
 | 
			
		||||
      g = path.open(mode: "r")
 | 
			
		||||
      assert_equal("abc", g.read)
 | 
			
		||||
      g.close
 | 
			
		||||
    }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue