summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dir.c9
-rw-r--r--file.c18
-rw-r--r--test/ruby/test_exception.rb8
3 files changed, 29 insertions, 6 deletions
diff --git a/dir.c b/dir.c
index b4f73de0bb..49e6818d25 100644
--- a/dir.c
+++ b/dir.c
@@ -3342,6 +3342,14 @@ rb_file_directory_p(void)
}
#endif
+/* :nodoc: */
+static VALUE
+rb_dir_exists_p(VALUE obj, VALUE fname)
+{
+ rb_warn_deprecated("Dir.exists?", "Dir.exist?");
+ return rb_file_directory_p(obj, fname);
+}
+
static void *
nogvl_dir_empty_p(void *ptr)
{
@@ -3470,6 +3478,7 @@ Init_Dir(void)
rb_define_singleton_method(rb_cDir,"home", dir_s_home, -1);
rb_define_singleton_method(rb_cDir,"exist?", rb_file_directory_p, 1);
+ rb_define_singleton_method(rb_cDir,"exists?", rb_dir_exists_p, 1);
rb_define_singleton_method(rb_cDir,"empty?", rb_dir_s_empty_p, 1);
rb_define_singleton_method(rb_cFile,"fnmatch", file_s_fnmatch, -1);
diff --git a/file.c b/file.c
index c64ec8cf7f..0c599b0895 100644
--- a/file.c
+++ b/file.c
@@ -1787,6 +1787,23 @@ rb_file_exist_p(VALUE obj, VALUE fname)
return Qtrue;
}
+/* :nodoc: */
+static VALUE
+rb_file_exists_p(VALUE obj, VALUE fname)
+{
+ const char *s = "FileTest#exist?";
+ if (obj == rb_mFileTest) {
+ s = "FileTest.exist?";
+ }
+ else if (obj == rb_cFile ||
+ (RB_TYPE_P(obj, T_CLASS) &&
+ RTEST(rb_class_inherited_p(obj, rb_cFile)))) {
+ s = "File.exist?";
+ }
+ rb_warn_deprecated("%.*ss?", s, (int)(strlen(s)-1), s);
+ return rb_file_exist_p(obj, fname);
+}
+
/*
* call-seq:
* File.readable?(file_name) -> true or false
@@ -6452,6 +6469,7 @@ Init_File(void)
define_filetest_function("directory?", rb_file_directory_p, 1);
define_filetest_function("exist?", rb_file_exist_p, 1);
+ define_filetest_function("exists?", rb_file_exists_p, 1);
define_filetest_function("readable?", rb_file_readable_p, 1);
define_filetest_function("readable_real?", rb_file_readable_real_p, 1);
define_filetest_function("world_readable?", rb_file_world_readable_p, 1);
diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb
index c611afa4f9..0333fd52ea 100644
--- a/test/ruby/test_exception.rb
+++ b/test/ruby/test_exception.rb
@@ -961,17 +961,13 @@ $stderr = $stdout; raise "\x82\xa0"') do |outs, errs, status|
end
def test_warn_deprecated_backwards_compatibility_category
- skip "no method to test"
-
- warning = capture_warning_warn { }
+ warning = capture_warning_warn { Dir.exists?("non-existent") }
assert_match(/deprecated/, warning[0])
end
def test_warn_deprecated_category
- skip "no method to test"
-
- warning = capture_warning_warn(category: true) { }
+ warning = capture_warning_warn(category: true) { Dir.exists?("non-existent") }
assert_equal :deprecated, warning[0][1]
end