Dumb question: in documentation, why Object#method, and not Object.method?

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

                Elf

The # is a naming convention.

Class#method means method is an instance method.
Class::method means method is a class method.

For example, do

  ri IO.read

There is IO::read and IO#read.

marcel

···

On Thu, Dec 01, 2005 at 04:17:30AM +0900, Elf M. Sternberg wrote:

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

--
Marcel Molina Jr. <marcel@vernix.org>

Elf M. Sternberg wrote:

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

Yes.

Elf M. Sternberg wrote:

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

Yes.

Yes. :wink:

As others have said, yes. As I understand it, though, it's a smalltalkism.

-austin

···

On 11/30/05, Elf M. Sternberg <elf@drizzle.com> wrote:

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

--
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca

Notice that "Object" in "Object#method" is capitalized. We're talking
about a class here not an instance. So if you were to say Object.method
you'd be refering to an instance method of the class itself --generally
called a _class method_, as opposed to an instance method defined by
the class. It's tricky because its relative --a class is itself an
instance of Class.

HTH,
T.

elf wrote:

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

                Elf

Where is this documented? I can't find it in any book...and searching
google on Ruby object#method doesn't lead to an explanation of this. You
get reams of hits using object#method syntax but not where it comes
from.

···

--
Posted via http://www.ruby-forum.com/\.

Hi --

···

On Thu, 1 Dec 2005, Marcel Molina Jr. wrote:

On Thu, Dec 01, 2005 at 04:17:30AM +0900, Elf M. Sternberg wrote:

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

The # is a naming convention.

Class#method means method is an instance method.
Class::method means method is a class method.

For example, do

ri IO.read

There is IO::read and IO#read.

Interesting -- I never picked up on ri's use of :: in preference to
the dot. I personally use Class.method for class methods (indeed for
any singleton method).

David

--
David A. Black
dblack@wobblini.net

Hmm...so Class is an instance of itself?

http://ruby-doc.org/core/classes/Object.html#M000336

···

2009/7/28 Gary Leydon <gary.leydon@yale.edu>

elf wrote:
> I keep seeing this syntax in documentation: Object#method, but in actual
> use sending a message to an object is usually
>
> object = Object.new
> object.method
>
> Is this just to emphasize that method() operates on an instance of
> Object and not the class Object?
>
> Elf

Where is this documented? I can't find it in any book...and searching
google on Ruby object#method doesn't lead to an explanation of this. You
get reams of hits using object#method syntax but not where it comes
from.

--
James Coglan
http://jcoglan.com

Where is this documented? I can't find it in any book...and searching
google on Ruby object#method doesn't lead to an explanation of this.

I immediately found it on ruby-doc.org:
http://www.ruby-doc.org/core/classes/Object.html#M000336

Regards
Nicolai

Gary Leydon schrieb:

elf wrote:

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

                Elf

Where is this documented? I can't find it in any book...and searching
google on Ruby object#method doesn't lead to an explanation of this. You
get reams of hits using object#method syntax but not where it comes
from.

The 1st edition of "Programming Ruby"[1] (a.k.a. the "Pickaxe") mentions
this notation:

Within the text, Fred#doIt is a reference to an instance method (doIt) of
class Fred, while Fred.new [In some other Ruby documentation, you may
see class methods written as Fred::new. This is perfectly valid Ruby
syntax; we just happen to feel that Fred.new is less distracting to
read.] is a class method, and Fred::EOF is a class constant.

The first appearance in the Ruby changelog[2] dates back to 1995,
suggesting that Matz himself may have introduced this convention.

-Matthias

[1]: http://www.rubycentral.com/pickaxe/preface.html
[2]:
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/tags/v1_0/ChangeLog?revision=2&view=markup

David A. Black wrote:

Hi --

I keep seeing this syntax in documentation: Object#method, but in actual
use sending a message to an object is usually

        object = Object.new
        object.method

Is this just to emphasize that method() operates on an instance of
Object and not the class Object?

The # is a naming convention.

Class#method means method is an instance method.
Class::method means method is a class method.

For example, do

ri IO.read

There is IO::read and IO#read.

Interesting -- I never picked up on ri's use of :: in preference to
the dot. I personally use Class.method for class methods (indeed for
any singleton method).

I believe that to be the convention, too.

   Klass.method <- Class method
   Klass#method <- Instance method
   Klass::FOO <- Class constant
   Klass::AnotherKlass <- Class constant (class or module)

···

On Thu, 1 Dec 2005, Marcel Molina Jr. wrote:

On Thu, Dec 01, 2005 at 04:17:30AM +0900, Elf M. Sternberg wrote:

Yep.

Class.class # => Class

-mental

···

On Fri, 2005-12-02 at 00:37 +0900, jwesley wrote:

Hmm...so Class is an instance of itself?

Hi --

···

On Fri, 2 Dec 2005, jwesley wrote:

Hmm...so Class is an instance of itself?

Yes. And Object is a Class, and Class is an Object :slight_smile: Ruby
object-space chases its own tail a bit at the top of the hierarchy,
for the sake of bootstrapping itself into existence.

David

--
David A. Black
dblack@wobblini.net

Nicolai Reuschling wrote:

Where is this documented? I can't find it in any book...and searching
google on Ruby object#method doesn't lead to an explanation of this.

I immediately found it on ruby-doc.org:
class Object - RDoc Documentation

Regards
Nicolai

Thanks for taking the time, I suspect I didn't make my question
clear,there is nothing that I can see on the link Object.html#M000336
that specifies what object#method means vs object::method but your link
lead me to search on the site and I found it here
Ruby Documentation Submission Guidelines, somewhat buried but
certainly clear.

Style Guidelines

Use :: for describing class methods,
     # for describing instance methods,
     . for example code.

···

--
Posted via http://www.ruby-forum.com/\.