Я изучаю рубин, я придумываю то, чего не понимаю. Я знаю, что модули в ruby используются для namespacing с помощью :: (или.) И смешивания с директивой include. Проблема возникает, когда я группирую некоторые методы внутри модуля, не помещая их внутри класса. Вот пример:
module Familiar
#this will not work
def ask_age
return "How old are you?"
end
#this will work
def Familiar::greeting
return "What up?"
end
end
# this call returns **NoMethodError**
puts(Familiar::ask_age())
# this call works fine
puts(Familiar::greeting())
Почему мне нужно включить пространство имен для определения метода, я уже в пространстве имен Знакомый, почему я должен повторять свое "я" и помещать Знакомое:: приветствие Вы можете проверить мой пример онлайн по этой ссылке: http://codepad.org/VUgCVPXN