Project

General

Profile

Bug #14004

ri confused by method aliases and by Queue versus Thread::Queue

Added by kernigh (George Koehler) almost 3 years ago. Updated 2 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.0dev (2017-10-10 trunk 60155) [x86_64-openbsd6.2]
[ruby-core:83219]
Tags:

Description

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.

Also available in: Atom PDF