Рубиновое имя модуля из класса, определенного в - PullRequest
2 голосов
/ 24 января 2012

У меня есть такой код:

module Hello

  class Hi

    def initialize()
      puts self.module.name //Should print "Hello"
    end

  end
end

Как я могу получить название модуля, в который включен класс?Спасибо

1 Ответ

3 голосов
/ 24 января 2012

Вы можете сделать это с помощью Module :: nesting method:

nesting → array

Возвращает список вложенных модулейв точке вызова.

module M
  class C
    Module.nesting[1] # => M
  end
end

Если вы хотите получить это значение из методов экземпляра, вы можете присвоить его переменной класса:

module Hello    
  class Hi
    @@parent = Module.nesting[1]

    def initialize()
      puts @@parent # => Hello
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...