Forum: Ruby Newbie question about Pickaxe example

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
49e4d002a3a32626d645058fad38f383?d=identicon&s=25 carmineaskme (Guest)
on 2005-11-15 13:53
(Received via mailing list)
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:

module Mod
     def Mod.method1()
         CONST + 1

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

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.

Carmine Moleti
956f185be9eac1760a2a54e287c4c844?d=identicon&s=25 decoux (Guest)
on 2005-11-15 14:02
(Received via mailing list)
>>>>> "C" == Carmine Moleti <carmineaskme@askme.ask> writes:

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"

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

Guy Decoux
49e4d002a3a32626d645058fad38f383?d=identicon&s=25 carmineaskme (Guest)
on 2005-11-15 14:14
(Received via mailing list)
Hi Guy,

Thanks for your clarification. It's clear now.

Carmine Moleti
This topic is locked and can not be replied to.