【发布时间】:2016-12-27 07:49:41
【问题描述】:
假设我们有一堆带有典型前缀的方法。
def pref_foo
# code
end
def pref_bar
# code
end
我想学习如何自动将这些前缀添加到我的方法名称中(例如在 Rails 中是如何完成的:Model.find_by_smth)。
换句话说,我想创建一些作用域pref_,它采用方法并将pref_ 添加到它们的名称中,因此我的方法foo 可以作为pref_foo 使用。
module Bar
# definition of some wrapper `pref_`
end
class Foo
include Bar
<some wrapper from Bar> do
def foo
puts 'What does a computer scientist wear on Halloween?'
end
def bar
puts 'A bit-mask.'
end
end
end
foo = Foo.new
foo.pref_foo # => "What does a computer scientist wear on Halloween?"
foo.pref_bar # => "A bit-mask."
【问题讨论】:
-
签出
method_missing:)
标签: ruby metaprogramming dsl