self.class.send :method, args...
当然,除此之外。我想在类和实例级别都提供一个相当复杂的方法,而无需复制代码。
更新:
@Jonathan Branam:这是我的假设,但我想确保没有其他人找到解决方法。Ruby 中的可见性与 Java 中的可见性非常不同。您也很正确,private
它不适用于类方法,尽管这将声明一个私有类方法:
class Foo
class <<self
private
def bar
puts 'bar'
end
end
end
Foo.bar
# => NoMethodError: private method 'bar' called for Foo:Class