From 48b94b791997881929c739c64f95ac30f3fd0bb9 Mon Sep 17 00:00:00 2001 From: Burdette Lamar Date: Tue, 29 Sep 2020 19:15:39 -0500 Subject: [PATCH] Enhanced RDoc for String#upto (#3603) * Enhanced RDoc for String#upto --- string.c | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/string.c b/string.c index 4ffd57cd5e..1f8e1f4128 100644 --- a/string.c +++ b/string.c @@ -4344,35 +4344,29 @@ str_upto_i(VALUE str, VALUE arg) /* * call-seq: - * str.upto(other_str, exclusive=false) {|s| block } -> str - * str.upto(other_str, exclusive=false) -> an_enumerator + * string.upto(other_string, exclusive = false) {|string| ... } -> self + * string.upto(other_string, exclusive = false) -> new_enumerator * - * Iterates through successive values, starting at str and - * ending at other_str inclusive, passing each value in turn - * to the block. The String#succ method is used to generate each - * value. If optional second argument exclusive is omitted or is - * false, the last value will be included; otherwise it will be - * excluded. + * With a block given, calls the block with each \String value + * returned by successive calls to String#succ; + * the first value is +self+, the next is self.succ, and so on; + * the sequence terminates when value +other_string+ is reached; + * returns +self+: + * 'a8'.upto('b6') {|s| print s, ' ' } # => "a8" + * Output: + * a8 a9 b0 b1 b2 b3 b4 b5 b6 * - * If no block is given, an enumerator is returned instead. + * If argument +exclusive+ is given as a truthy object, the last value is omitted: + * 'a8'.upto('b6', true) {|s| print s, ' ' } # => "a8" + * Output: + * a8 a9 b0 b1 b2 b3 b4 b5 * - * "a8".upto("b6") {|s| print s, ' ' } - * for s in "a8".."b6" - * print s, ' ' - * end + * If +other_string+ would not be reached, does not call the block: + * '25'.upto('5') {|s| fail s } + * 'aa'.upto('a') {|s| fail s } * - * produces: - * - * a8 a9 b0 b1 b2 b3 b4 b5 b6 - * a8 a9 b0 b1 b2 b3 b4 b5 b6 - * - * If str and other_str contains only ascii numeric characters, - * both are recognized as decimal numbers. In addition, the width of - * string (e.g. leading zeros) is handled appropriately. - * - * "9".upto("11").to_a #=> ["9", "10", "11"] - * "25".upto("5").to_a #=> [] - * "07".upto("11").to_a #=> ["07", "08", "09", "10", "11"] + * With no block given, returns a new \Enumerator: + * 'a8'.upto('b6') # => # */ static VALUE