【发布时间】:2017-04-07 19:22:08
【问题描述】:
我想从库中修改现有模块A:
module A
class << self
def foo
bar('Baz')
end
private
def bar(val)
val.upcase
end
end
end
A.foo
=> "BAZ"
module B
extend A
def self.bar(val)
val.downcase
end
end
B.foo # hoping for 'baz', but instead:
NoMethodError: undefined method `foo' for B:Module
有没有办法从A重用方法.foo并且只修改方法.bar?
【问题讨论】:
-
如果你好奇,这就是我要复用的模块:github.com/ruby-grape/grape/blob/v0.18.0/lib/grape/…
-
可能与以下内容重复:stackoverflow.com/questions/4662722/… ?
-
非常有趣的问题!
-
@Deradon:不是真正的复制品。在另一个问题中,作者还拥有基本模块。这里的基本模块驻留在公共图书馆中。只有一个答案认为情况并非总是如此。