Defining methods inside a module in Ruby

I'm learning ruby, I come up on something that I don't understand. I know that modules in ruby are used for namespacing with :: (or .) and mixing with include directive. The problem comes when I group some methods inside a module, without putting them inside a class. Here's an example:

module Familiar
  #this will not work
    def ask_age
      return "How old are you?"
    end
  #this will work
    def Familiar::greeting
      return "What's up?"
    end
end
# this call returns **NoMethodError** 
puts(Familiar::ask_age()) 
# this call works fine
puts(Familiar::greeting()) 

Why do I need to include the namespace to define the method, I'm already inside the namespace Familiar why do I have to repeat my self and put Familiar::greeting You can test my example online following this link: http://codepad.org/VUgCVPXN

This question and all comments follow the "Attribution Required."

All Answers

Answers Loading...
Leave a Reply
You must be logged in to post a answer.
About the author