ruby-changes:71520
From: Burdette <ko1@a...>
Date: Sun, 27 Mar 2022 02:42:59 +0900 (JST)
Subject: [ruby-changes:71520] e699e2d9bf (master): Enhanced RDoc for String (#5723)
https://git.ruby-lang.org/ruby.git/commit/?id=e699e2d9bf From e699e2d9bff14e3de1323d8d263cd3d04f4d9128 Mon Sep 17 00:00:00 2001 From: Burdette Lamar <BurdetteLamar@Y...> Date: Sat, 26 Mar 2022 12:42:44 -0500 Subject: Enhanced RDoc for String (#5723) Treats: #lstrip #lstrip! #rstrip #rstrip! #strip #strip! Adds section Whitespace in Strings. --- string.c | 104 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 57 insertions(+), 47 deletions(-) diff --git a/string.c b/string.c index 3cf8d38a2d..f100f9d074 100644 --- a/string.c +++ b/string.c @@ -9692,17 +9692,12 @@ lstrip_offset(VALUE str, const char *s, const char *e, rb_encoding *enc) https://github.com/ruby/ruby/blob/trunk/string.c#L9692 /* * call-seq: - * str.lstrip! -> self or nil + * lstrip! -> self or nil * - * Removes leading whitespace from the receiver. - * Returns the altered receiver, or +nil+ if no change was made. - * See also String#rstrip! and String#strip!. + * Like String#lstrip, except that any modifications are made in +self+; + * returns +self+ if any modification are made, +nil+ otherwise. * - * Refer to String#strip for the definition of whitespace. - * - * " hello ".lstrip! #=> "hello " - * "hello ".lstrip! #=> nil - * "hello".lstrip! #=> nil + * Related: String#rstrip!, String#strip!. */ static VALUE @@ -9730,15 +9725,17 @@ rb_str_lstrip_bang(VALUE str) https://github.com/ruby/ruby/blob/trunk/string.c#L9725 /* * call-seq: - * str.lstrip -> new_str + * lstrip -> new_string * - * Returns a copy of the receiver with leading whitespace removed. - * See also String#rstrip and String#strip. + * Returns a copy of +self+ with leading whitespace removed; + * see {Whitespace in Strings}[rdoc-ref:String@Whitespace+in+Strings]: * - * Refer to String#strip for the definition of whitespace. + * whitespace = "\x00\t\n\v\f\r " + * s = whitespace + 'abc' + whitespace + * s # => "\u0000\t\n\v\f\r abc\u0000\t\n\v\f\r " + * s.lstrip # => "abc\u0000\t\n\v\f\r " * - * " hello ".lstrip #=> "hello " - * "hello".lstrip #=> "hello" + * Related: String#rstrip, String#strip. */ static VALUE @@ -9780,17 +9777,12 @@ rstrip_offset(VALUE str, const char *s, const char *e, rb_encoding *enc) https://github.com/ruby/ruby/blob/trunk/string.c#L9777 /* * call-seq: - * str.rstrip! -> self or nil - * - * Removes trailing whitespace from the receiver. - * Returns the altered receiver, or +nil+ if no change was made. - * See also String#lstrip! and String#strip!. + * rstrip! -> self or nil * - * Refer to String#strip for the definition of whitespace. + * Like String#rstrip, except that any modifications are made in +self+; + * returns +self+ if any modification are made, +nil+ otherwise. * - * " hello ".rstrip! #=> " hello" - * " hello".rstrip! #=> nil - * "hello".rstrip! #=> nil + * Related: String#lstrip!, String#strip!. */ static VALUE @@ -9817,15 +9809,17 @@ rb_str_rstrip_bang(VALUE str) https://github.com/ruby/ruby/blob/trunk/string.c#L9809 /* * call-seq: - * str.rstrip -> new_str + * rstrip -> new_string * - * Returns a copy of the receiver with trailing whitespace removed. - * See also String#lstrip and String#strip. + * Returns a copy of the receiver with trailing whitespace removed; + * see {Whitespace in Strings}[rdoc-ref:String@Whitespace+in+Strings]: * - * Refer to String#strip for the definition of whitespace. + * whitespace = "\x00\t\n\v\f\r " + * s = whitespace + 'abc' + whitespace + * s # => "\u0000\t\n\v\f\r abc\u0000\t\n\v\f\r " + * s.rstrip # => "\u0000\t\n\v\f\r abc" * - * " hello ".rstrip #=> " hello" - * "hello".rstrip #=> "hello" + * Related: String#lstrip, String#strip. */ static VALUE @@ -9846,15 +9840,12 @@ rb_str_rstrip(VALUE str) https://github.com/ruby/ruby/blob/trunk/string.c#L9840 /* * call-seq: - * str.strip! -> self or nil + * strip! -> self or nil * - * Removes leading and trailing whitespace from the receiver. - * Returns the altered receiver, or +nil+ if there was no change. + * Like String#strip, except that any modifications are made in +self+; + * returns +self+ if any modification are made, +nil+ otherwise. * - * Refer to String#strip for the definition of whitespace. - * - * " hello ".strip! #=> "hello" - * "hello".strip! #=> nil + * Related: String#lstrip!, String#strip!. */ static VALUE @@ -9886,17 +9877,17 @@ rb_str_strip_bang(VALUE str) https://github.com/ruby/ruby/blob/trunk/string.c#L9877 /* * call-seq: - * str.strip -> new_str + * strip -> new_string * - * Returns a copy of the receiver with leading and trailing whitespace removed. + * Returns a copy of the receiver with leading and trailing whitespace removed; + * see {Whitespace in Strings}[rdoc-ref:String@Whitespace+in+Strings]: * - * Whitespace is defined as any of the following characters: - * null, horizontal tab, line feed, vertical tab, form feed, carriage return, space. + * whitespace = "\x00\t\n\v\f\r " + * s = whitespace + 'abc' + whitespace + * s # => "\u0000\t\n\v\f\r abc\u0000\t\n\v\f\r " + * s.strip # => "abc" * - * " hello ".strip #=> "hello" - * "\tgoodbye\r\n".strip #=> "goodbye" - * "\x00\t\n\v\f\r ".strip #=> "" - * "hello".strip #=> "hello" + * Related: String#lstrip, String#rstrip. */ static VALUE @@ -12230,6 +12221,25 @@ rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc) https://github.com/ruby/ruby/blob/trunk/string.c#L12221 * Special match variables such as <tt>$1</tt>, <tt>$2</tt>, <tt>$`</tt>, * <tt>$&</tt>, and <tt>$'</tt> are set appropriately. * + * == Whitespace in Strings + * + * In class \String, _whitespace_ is defined as a contiguous sequence of characters + * consisting of any mixture of the following: + * + * - NL (null): <tt>"\x00"</tt>, <tt>"\u0000"</tt>. + * - HT (horizontal tab): <tt>"\x09"</tt>, "<tt>\t"</tt>. + * - LF (line feed): <tt>"\x0a"</tt>, <tt>"\n"</tt>. + * - VT (vertical tab): <tt>"\x0b"</tt>, <tt>"\v"</tt>. + * - FF (form feed): <tt>"\x0c"</tt>, <tt>"\f"</tt>. + * - CR (carriage return): <tt>"\x0d"</tt>, <tt>"\r"</tt>. + * - SP (space): <tt>"\x20"</tt>, <tt>" "</tt>. + * + * + * Whitespace is relevant for these methods: + * + * - #lstrip, #lstrip!: strip leading whitespace. + * - #rstrip, #rstrip!: strip trailing whitespace. + * - #strip, #strip!: strip leading and trailing whitespace. * * == What's Here * @@ -12360,7 +12370,7 @@ rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc) https://github.com/ruby/ruby/blob/trunk/string.c#L12370 * - #rstrip!:: Removes trailing whitespace; returns +self+ if any changes, +nil+ otherwise. * - #strip!:: Removes leading and trailing whitespace; returns +self+ if any changes, +nil+ otherwise. * - #chomp!:: Removes trailing record separator, if found; returns +self+ if any changes, +nil+ otherwise. - * - #chop!:: Removes trailing whitespace if found, otherwise removes the last character; + * - #chop!:: Removes trailing newline characters if found; otherwise removes the last character; * returns +self+ if any changes, +nil+ otherwise. * * === Methods for Converting to New \String @@ -12420,7 +12430,7 @@ rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc) https://github.com/ruby/ruby/blob/trunk/string.c#L12430 * - #rstrip:: Returns a copy of +self+ with trailing whitespace removed. * - #strip:: Returns a copy of +self+ with leading and trailing whitespace removed. * - #chomp:: Returns a copy of +self+ with a trailing record separator removed, if found. - * - #chop:: Returns a copy of +self+ with trailing whitespace or the last character removed. + * - #chop:: Returns a copy of +self+ with trailing newline characters or the last character removed. * - #squeeze:: Returns a copy of +self+ with contiguous duplicate characters removed. * - #[], #slice:: Returns a substring determined by a given index, start/length, or range, or string. * - #byteslice:: Returns a substring determined by a given index, start/length, or range. -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/