From 4a935bc6f66fda448fb430c7627a2f175dcd0650 Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Sat, 13 Jul 2019 15:23:49 +0200 Subject: [PATCH] Document $LOAD_PATH.resolve_feature_path in globals.rdoc * RDoc does not seem to support documenting singleton object methods, and making $LOAD_PATH a class as a workaround is too weird. --- doc/globals.rdoc | 5 ++++- load.c | 3 +-- vm.c | 12 ------------ 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/doc/globals.rdoc b/doc/globals.rdoc index 96030ea550..284f3d764e 100644 --- a/doc/globals.rdoc +++ b/doc/globals.rdoc @@ -25,7 +25,10 @@ $$:: The process number of the Ruby running this script. $?:: The status of the last executed child process. This value is thread-local. $LOAD_PATH:: Load path for scripts and binary modules by load or require. - Aliased to $: and $-I. + Aliased to $: and $-I. Has a singleton method + $LOAD_PATH.resolve_feature_path(feature) that returns + [:rb or :so, path], which resolves the feature to the path the + original Kernel#require method would load. $LOADED_FEATURES:: The array contains the module names loaded by require. Aliased to $". $DEBUG:: The debug flag, which is set by the -d switch. Enabling debug diff --git a/load.c b/load.c index 4eb3f7f50b..539b29f89b 100644 --- a/load.c +++ b/load.c @@ -945,14 +945,13 @@ load_ext(VALUE path) return (VALUE)dln_load(RSTRING_PTR(path)); } -/* Method is documented in vm.c */ - static int no_feature_p(const char *feature, const char *ext, int rb, int expanded, const char **fn) { return 0; } +// Documented in doc/globals.rdoc VALUE rb_resolve_feature_path(VALUE klass, VALUE fname) { diff --git a/vm.c b/vm.c index 09e727ff7f..b5412d1a6d 100644 --- a/vm.c +++ b/vm.c @@ -2937,18 +2937,6 @@ static VALUE usage_analysis_operand_stop(VALUE self); static VALUE usage_analysis_register_stop(VALUE self); #endif -/* - * Document-method: RubyVM::resolve_feature_path - * call-seq: - * RubyVM.resolve_feature_path(feature) -> [:rb or :so, path] - * - * Identifies the file that will be loaded by "require(feature)". - * This API is experimental and just for internal use. - * - * RubyVM.resolve_feature_path("set") - * #=> [:rb, "/path/to/set.rb"] - */ - void Init_VM(void) {