summaryrefslogtreecommitdiff
path: root/load.c
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-08-23 06:30:30 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-08-23 06:30:30 +0000
commitdf0cb1c4d145d30902958b4a60374b519a35fd1a (patch)
treec2901c9b71397e820b8fc264fee3e87d974fa61b /load.c
parent73867ef5d18a90a8cb697c94fbd9503d1239de7c (diff)
* backport r33027 from trunk.
* load.c (rb_f_require): Improve documentation of Kernel#require. [Ruby 1.9 - Bug #5210] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@33028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'load.c')
-rw-r--r--load.c41
1 files changed, 25 insertions, 16 deletions
diff --git a/load.c b/load.c
index 62e2cac4c6..0ff4b60253 100644
--- a/load.c
+++ b/load.c
@@ -430,24 +430,33 @@ load_unlock(const char *ftptr, int done)
/*
* call-seq:
- * require(string) -> true or false
+ * require(name) -> true or false
*
- * Ruby tries to load the library named _string_, returning
- * +true+ if successful. If the filename does not resolve to
- * an absolute path, it will be searched for in the directories listed
- * in <code>$:</code>. If the file has the extension ``.rb'', it is
- * loaded as a source file; if the extension is ``.so'', ``.o'', or
- * ``.dll'', or whatever the default shared library extension is on
- * the current platform, Ruby loads the shared library as a Ruby
- * extension. Otherwise, Ruby tries adding ``.rb'', ``.so'', and so on
- * to the name. The name of the loaded feature is added to the array in
- * <code>$"</code>. A feature will not be loaded if its name already
- * appears in <code>$"</code>. The file name is converted to an absolute
- * path, so ``<code>require 'a'; require './a'</code>'' will not load
- * <code>a.rb</code> twice.
+ * Loads the given +name+, returning +true+ if successful and +false+ if the
+ * feature is already loaded.
*
- * require "my-library.rb"
- * require "db-driver"
+ * If the filename does not resolve to an absolute path, it will be searched
+ * for in the directories listed in <code>$LOAD_PATH</code> (<code>$:</code>).
+ *
+ * If the filename has the extension ".rb", it is loaded as a source file; if
+ * the extension is ".so", ".o", or ".dll", or the default shared library
+ * extension on the current platform, Ruby loads the shared library as a
+ * Ruby extension. Otherwise, Ruby tries adding ".rb", ".so", and so on
+ * to the name until found. If the file named cannot be found, a LoadError
+ * will be raised.
+ *
+ * For Ruby extensions the filename given may use any shared library
+ * extension. For example, on Linux the socket extension is "socket.so" and
+ * <code>require 'socket.dll'</code> will load the socket extension.
+ *
+ * The absolute path of the loaded file is added to
+ * <code>$LOADED_FEATURES</code> (<code>$"</code>). A file will not be
+ * loaded again if its path already appears in <code>$"</code>. For example,
+ * <code>require 'a'; require './a'</code> will not load <code>a.rb</code>
+ * again.
+ *
+ * require "my-library.rb"
+ * require "db-driver"
*/
VALUE