Kernel#blah is documented as Object#blah. Why?

Discussion in 'Ruby' started by Alex Fortuna, Feb 18, 2009.

  1. Alex Fortuna

    Alex Fortuna Guest

    Hi guys.

    There are certain common methods that originate from module Kernel, but
    they're documented in class Object.

    E.g.

    > o = Object.new
    > => #<Object:0xb76826c8>
    > o.method :send
    > => #<Method: Object(Kernel)#send>


    method's #inspect clearly shows that #send originates from Kernel, but:

    $ ri Kernel#send
    Nothing known about Kernel#send
    $ ri Object#send
    (ri page on #send)

    Why this kind of confusion? Why not making methods like #send, #kind_of?
    and a bunch of others *ACTUALLY* belong to Object, thus making
    method.inspect() more accurate in terms of pointing to the proper place
    in the documentation?
    --
    Posted via http://www.ruby-forum.com/.
     
    Alex Fortuna, Feb 18, 2009
    #1
    1. Advertising

  2. On Feb 18, 2009, at 11:34 AM, Alex Fortuna wrote:
    > Hi guys.
    >
    > There are certain common methods that originate from module Kernel,
    > but
    > they're documented in class Object.
    >
    > E.g.
    >
    >> o = Object.new
    >> => #<Object:0xb76826c8>
    >> o.method :send
    >> => #<Method: Object(Kernel)#send>

    >
    > method's #inspect clearly shows that #send originates from Kernel,
    > but:
    >
    > $ ri Kernel#send
    > Nothing known about Kernel#send
    > $ ri Object#send
    > (ri page on #send)
    >
    > Why this kind of confusion? Why not making methods like #send,
    > #kind_of?
    > and a bunch of others *ACTUALLY* belong to Object, thus making
    > method.inspect() more accurate in terms of pointing to the proper
    > place
    > in the documentation?



    Or use a different program for searching the ri docs, like fastri

    $ fri Kernel#send
    ------------------------------------------------------------ Object#send
    obj.send(symbol [, args...]) => obj
    obj.__send__(symbol [, args...]) => obj
    ------------------------------------------------------------------------

    It even helps with things like:
    $ fri send
    ------------------------------------------------------ Multiple choices:

    Net::SSH::Transport::OutgoingPacketStream#send,
    Net::SSH::UserAuth::pageant::Socket#send, Object#send,
    Resolv::DNS::Requester::ConnectedUDP::Sender#send,
    Resolv::DNS::Requester::TCP::Sender#send,
    Resolv::DNS::Requester::UnconnectedUDP::Sender#send,
    SOAP::HTTPStreamHandler#send, UDPSocket#send

    http://rubyforge.org/projects/fastri/

    -Rob

    Rob Biedenharn http://agileconsultingllc.com

    +1 513-295-4739
    Skype: rob.biedenharn
     
    Rob Biedenharn, Feb 18, 2009
    #2
    1. Advertising

  3. [Note: parts of this message were removed to make it a legal post.]

    On Wed, Feb 18, 2009 at 12:03 PM, Rob Biedenharn <
    > wrote:


    >
    >
    > Or use a different program for searching the ri docs, like fastri
    >
    > $ fri Kernel#send
    > ------------------------------------------------------------ Object#send
    > obj.send(symbol [, args...]) => obj
    > obj.__send__(symbol [, args...]) => obj
    > ------------------------------------------------------------------------
    >
    > It even helps with things like:
    > $ fri send
    > ------------------------------------------------------ Multiple choices:
    >
    > Net::SSH::Transport::OutgoingPacketStream#send,
    > Net::SSH::UserAuth::pageant::Socket#send, Object#send,
    > Resolv::DNS::Requester::ConnectedUDP::Sender#send,
    > Resolv::DNS::Requester::TCP::Sender#send,
    > Resolv::DNS::Requester::UnconnectedUDP::Sender#send,
    > SOAP::HTTPStreamHandler#send, UDPSocket#send



    And as the name implies, it's MUCH faster than ri, unless ri has made
    significant progress in that area since I pretty much stopped using it for
    fri, or it's alter ego qri

    --
    Rick DeNatale

    Blog: http://talklikeaduck.denhaven2.com/
    Twitter: http://twitter.com/RickDeNatale
     
    Rick DeNatale, Feb 18, 2009
    #3
  4. Alex Fortuna

    Alex Fortuna Guest

    Rob,

    Well, using alternative ri implementations might be a way out.

    However, for me the point isn't me not being able to find where #send is
    documented. ri also supports various kinds of listings etc.

    The point is trying to figure out why certain methods are documented in
    (supposedly) wrong places, and, if possible, find ways to fix that. That
    way we'll found a solid base for misc reflection-based doc solutions.

    I'm currently writing a hack that relies upon reflection to
    automatically find where the documentation is. For Rails & other gems it
    works perfectly. For base Ruby -- well, one of the issues is the topic
    of this post. :)
    --
    Posted via http://www.ruby-forum.com/.
     
    Alex Fortuna, Feb 18, 2009
    #4
  5. Alex Fortuna

    matt neuburg Guest

    Rob Biedenharn <> wrote:

    > On Feb 18, 2009, at 11:34 AM, Alex Fortuna wrote:
    > > Hi guys.
    > >
    > > There are certain common methods that originate from module Kernel,
    > > but
    > > they're documented in class Object.
    > >
    > > E.g.
    > >
    > >> o = Object.new
    > >> => #<Object:0xb76826c8>
    > >> o.method :send
    > >> => #<Method: Object(Kernel)#send>

    > >
    > > method's #inspect clearly shows that #send originates from Kernel,
    > > but:
    > >
    > > $ ri Kernel#send
    > > Nothing known about Kernel#send
    > > $ ri Object#send
    > > (ri page on #send)
    > >
    > > Why this kind of confusion? Why not making methods like #send,
    > > #kind_of?
    > > and a bunch of others *ACTUALLY* belong to Object, thus making
    > > method.inspect() more accurate in terms of pointing to the proper
    > > place
    > > in the documentation?

    >
    >
    > Or use a different program for searching the ri docs, like fastri


    Fastri has been broken for months OMM.

    $ fri Object
    (druby://127.0.0.1:50026) /usr/local/lib/ruby/1.8/yaml.rb:133:in
    `transfer': invalid subclass (TypeError)
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/1.8/yaml.rb:133:in `node_import'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/1.8/yaml.rb:133:in `load'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/1.8/yaml.rb:133:in `load'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:72:in `deserialize'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:354:in `get_class'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:354:in `open'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:354:in `get_class'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:352:in `each'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_index.rb:352:in `get_class'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_service.rb:209:in `info'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_service.rb:422:in
    `capture_stdout'
    from (druby://127.0.0.1:50026)
    /usr/local/lib/ruby/site_ruby/1.8/fastri/ri_service.rb:208:in `info'
    from /usr/local/bin/fri:342
    from /usr/local/bin/fri:337:in `each'
    from /usr/local/bin/fri:337

    m.

    --
    matt neuburg, phd = , http://www.tidbits.com/matt/
    Leopard - http://www.takecontrolbooks.com/leopard-customizing.html
    AppleScript - http://www.amazon.com/gp/product/0596102119
    Read TidBITS! It's free and smart. http://www.tidbits.com
     
    matt neuburg, Feb 18, 2009
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. evolve
    Replies:
    2
    Views:
    512
    William Ryan
    Nov 2, 2003
  2. A. Kong
    Replies:
    2
    Views:
    4,847
    Iwo Mergler
    Oct 11, 2004
  3. Hylander
    Replies:
    0
    Views:
    428
    Hylander
    Jan 16, 2004
  4. Mr. SweatyFinger
    Replies:
    2
    Views:
    2,269
    Smokey Grindel
    Dec 2, 2006
  5. yogesh
    Replies:
    3
    Views:
    614
    Kenny McCormack
    Feb 12, 2006
Loading...

Share This Page