Newbie question about Pickaxe example

C

Carmine Moleti

Hi to everyone,

I'm just approaching ruby (so far I like it) coming from Python and
other OO languages.

I've bought the new edition of the famous "Pickaxe" book and I'm having
a little difficulties understanding a piece of code.

There's a paragraph (on page 354 for those who have that book) about
"Module Definitions" which contains the following snippet of code:

CONST="outer"
module Mod
CONST=1
def Mod.method1()
CONST + 1
end
end

module Mod::Inner
def (Mod::Inner).method2()
CONST + " scope"
end
end

well, this last part is the one causing me difficulties.

"::" is the scope resolutor, and so far so good, but "Mod::Inner" what
is it?
"Inner" ought to be a constant judging from the name conventions.
Is it a predefinite one, or what?

I imagine that the definition under "Mod::Inner" are meant to insert
"method2" in the module "Mod". Just can't figure why "Mod::Inner".

Thanks in advance for your help.

Regards,
Carmine Moleti
 
T

ts

C> module Mod::Inner

here it define the module Inner under the module Mod

C> def (Mod::Inner).method2()

it define a method for this module (Mod::Inner)

C> CONST + " scope"
C> end
C> end

it's written like this, to see the difference with this

module Mod
module Inner
def self.method2
CONST + "scope"
end
end
end

Mod::Inner.method2 # in `+': String can't be coerced into Fixnum


Guy Decoux
 
C

Carmine Moleti

Hi Guy,

Thanks for your clarification. It's clear now.

Regards,
Carmine Moleti
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,175
Latest member
Vinay Kumar_ Nevatia
Top