Я записал полную программу, чтобы сделать просто это некоторое время назад. Я могу загрузить демонстрацию позже, когда я возвращаюсь домой.
Вот код (asp.net/c#): http://naspinski.net/post/Findingcounting-Keywords-out-of-a-Text-Document.aspx
self.class
дает вам класс объекта, для которого вызывается метод. Предполагая, что модуль был включен в класс, это либо класс, который включал модуль, либо его подкласс. Если вам действительно нужно только имя, вы можете использовать вместо него self.class.name
.
Если вы расширили класс с помощью модуля и хотите получить этот класс, вы можете просто сделать cls = self
(или cls = name
, если вы хотите, чтобы имя класса было строкой).
Если ничего из вышеперечисленного не помогает, вы должны пояснить, что вы хотите.
Works for me. As sepp said you have to include it for it to work.
module ActMethods
def some_method(*attr_names)
cls = self.class # this doesn't work
puts cls
end
end
class Boh
include ActMethods
end
b = Boh.new
b.some_method