Issue #14004 has been updated by jeremyevans0 (Jeremy Evans).
Status changed from Open to Closed
Both `ri Queue#push` and `ri Array#append` should work now.
----------------------------------------
Bug #14004: ri confused by method aliases and by Queue versus Thread::Queue
https://bugs.ruby-lang.org/issues/14004#change-85938
* Author: kernigh (George Koehler)
* Status: Closed
* Priority: Normal
* ruby -v: ruby 2.5.0dev (2017-10-10 trunk 60155) [x86_64-openbsd6.2]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
`ri` in Ruby trunk fails to find documentation for some methods.
Array#append and Array#prepend are new in trunk. ri knows that these methods exist, but has no document for them.
```
$ ri Array#append
= Array#append
(from ruby core)
------------------------------------------------------------------------------
append(*args)
------------------------------------------------------------------------------
```
The same problem happens with all methods from `rb_define_alias()` in Ruby's source code. For example, Array#size, IO#to_i, Hash#to_s, and Thread#inspect have no document. These are all aliases of other methods that have document.
There is another problem with Queue, an alias for Thread::Queue. ri doesn't know that Queue has methods.
```
$ ri Queue#push
Nothing known about Queue#push
```
The command `ri Queue` shows the document for the class, but it has no methods. The command `ri Thread::Queue` shows methods, but no class document. The same problem happens with other classes in rthread_sync.c, like Mutex.
--
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>