我正在尝试在 ruby 中实现惰性方法执行。假设我有一个类有两个方法,调用后不应该立即执行
class Foo
lazy_evaluate :bar, :baz
def bar(string)
puts string
end
def baz(hash)
puts hash.inspect
end
end
f = Foo.new
f.bar('hello world') => nil
f.baz(hello: :world) => nil
f.run_lazy_methods =>
'hello world'
'{:hello=>:world}'
我不想在我的 gem http://pastie.org/5137463中使用它
我想知道如何实现这种行为