考虑以下类:
class Foo
def an_inst_method
'instance method'
end
def self.a_class_method
'class method'
end
alias_method :a_new_inst_method, :an_inst_method
end
这不是问题,您可以毫无问题地拨打电话Foo.new.a_new_inst_method
。
我希望能够拥有一个类方法Foo.add_widget(*items)
和别名,这样我就可以执行以下操作:
Foo.add_widget 'item1'
Foo.add_widgets 'item2', 'item3'
所以本质上它有一个“红宝石风格” 1.minute
,2.minutes
所以我想给一个Foo.add_widget
这样的调用起别名,调用Foo.add_widgets
完全相同的方法。我知道我可以把它包起来,但我觉得我应该能够以一种更干净的方式做到这一点。
考虑一下我尝试这样的尝试:
class Foo
def an_inst_method
'instance method'
end
def self.a_class_method
'class method'
end
alias_method :a_new_inst_method, :an_inst_method
alias_method :a_new_class_method, :a_class_method
end
但是,我收到以下错误:
NameError (undefined method `a_class_method' for class `Foo')
所以看起来这不适用于类方法。我该怎么做呢?