Issue #13275 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Closed

Fixed: https://github.com/ruby/rdoc/issues/452

----------------------------------------
Bug #13275: RDoc bug for "Document-method: []"
https://bugs.ruby-lang.org/issues/13275#change-78850

* Author: stomar (Marcus Stollsteimer)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
RDoc doesn't handle Document-method directives for `#[]` correctly. When multiple directives are given, "Document-method: []" shows up as a code block, at the beginning of the docs for the method of the directive before:

```
$ cat document-method-test.c 
/*
 * Document-method: foo
 * Document-method: []
 * Document-method: bar
 *
 * Does nothing.
 */
static VALUE
rb_my_method(void)
{

}

rb_cFoo = rb_define_class("Foo", rb_cObject);
rb_define_method(rb_cFoo, "foo", rb_my_method, 0);
rb_define_method(rb_cFoo, "bar", rb_my_method, 0);
rb_define_method(rb_cFoo, "[]", rb_my_method, 0);
```

The directive affects the docs for `#foo`:

```
$ rdoc --ri document-method-test.c -o mydoc
$ ri Foo.foo -d mydoc

Foo.foo

(from /.../.../mydoc)
------------------------------------------------------------------------------
  foo()

------------------------------------------------------------------------------

  Document-method: []

Does nothing.
```

When the order of the Document-method directives is changed, with `Document-method: []` as the first one, everything is rendered correctly.

Real life example: https://docs.ruby-lang.org/en/2.3.0/Proc.html#method-i-call




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>