From 0764e19eed94c3816421c904b559bc1f064519dc Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Mon, 24 Apr 2017 11:38:11 -0700 Subject: [PATCH] Document the Warning module and warn method --- error.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/error.c b/error.c index e431a6f9b9..69371cd3da 100644 --- a/error.c +++ b/error.c @@ -136,6 +136,15 @@ ruby_deprecated_internal_feature(const char *func) rb_fatal("%s is only for internal use and deprecated; do not use", func); } +/* + * call-seq: + * warn(msg) -> nil + * + * Writes warning message to $stderr, followed by a newline + * if the message does not end in a newline. This method is called + * by ruby for all emitted warnings. + */ + static VALUE rb_warning_s_warn(VALUE mod, VALUE str) { @@ -145,6 +154,22 @@ rb_warning_s_warn(VALUE mod, VALUE str) return Qnil; } +/* + * Document-module: Warning + * + * The Warning module contains a single method named #warn, and the + * module extends itself, making Warning.warn available. + * Warning.warn is called for all warnings issued by ruby. + * By default, warnings are printed to $stderr. + * + * By overriding Warning.warn, you can change how warnings are + * handled by ruby, either filtering some warnings, and/or outputing + * warnings somewhere other than $stderr. When Warning.warn is + * overridden, super can be called to get the default behavior of + * printing the warning to $stderr. + * + */ + static void rb_write_warning_str(VALUE str) { -- 2.11.0