【发布时间】:2013-12-23 17:53:28
【问题描述】:
有没有办法让我变成这样:
SomeModule.some_method do
choos_one_from 1..10
then_multiply_it_by 2
then_multiply_it_by 5
then_divide_it_by :picked_number
then_subtract 7
did_you_get 3
end
进入这个:
(1..10).all? do |number|
((number * 2 * 5) / number) - 7 == 3
end
?
我尝试为每个可能的方法(choose_one_from,then_multiply_it_by...)定义方法,这些方法接受一个参数并用它做一些事情,但是当 yield 块时它会产生值,但我真的不知道如何组合它们所以我可以得到第二段代码。
EDIT :我觉得我必须制作类似 DSL
的东西【问题讨论】:
标签: ruby metaprogramming block static-methods dsl