Получение модуля, в котором определен класс без манипуляций со строками - PullRequest
3 голосов
/ 25 марта 2012

Ссылка ( Ruby-имя модуля из класса, определенного в , Module.nesting в instance_eval / exec или module_eval / exec )

В следующей настройке:

module Foo
  class Bar
  end
end

Есть ли способ получить имя модуля Foo, не изменяя Bar и не прибегая к манипулированию строками с полным именем Foo::Bar?

1 Ответ

0 голосов
/ 25 марта 2012

Я обманываю, я не изменяю Bar, но Class:

class Class
  def my_module
    self.to_s.split('::').first
  end
end 

module Foo
  class Bar    
  end
end

p Foo::Bar.my_module  #-> "Foo"

#Works also after include
include Foo
p Bar.my_module #-> "Foo"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...