在看着this video的时候,我遇到了一个有趣的问题,主持人Dave Thomas。他是在谈论我们看到Ruby类方法定义所有的时间语法:在'class << self'方法定义中访问Ruby'self'方法
class Foo
class << self
def bar
puts "inside class method"
end
def self.baz
puts "inside anonymous superclass method"
end
end
end
当然,我们可以访问Foo.bar
,但一个人如何去baz
? Dave Thomas谈到了将语法插入到层次结构中的匿名超类。我试过如下:
- 调用
Foo.superclass.baz
不起作用,因为Foo.superclass
只是Object
。 - 我对祖先层次结构的可用方法进行了探讨,但无济于事。
Test.class_eval 'self.self.baz'
......现在事情变得有些荒谬。
想法?
问题出现在视频中44:23左右。
在视频的最后,戴夫解释了几种方式来做到这一点,每一种方式都比上次更优雅。 – jreut 2014-11-20 23:03:19