有没有更好的方法来实现以下目标?将方法列为符号似乎有点笨拙......
对于4种方法中的每种方法,此代码在init
之前和draw
之后运行。以下代码有效,但是有更可读或惯用的方法吗?
Class DrawMap
def draw_method_1
...
end
def draw_method_2
...
end
def draw_all
[:draw_method_1, :draw_method_2, :draw_method_3, :draw_method_4].each do |method|
init_draw
send method
@draw.draw
end
end
...
过滤器之前和之后的Rails会做同样的事情,但这不是Rails应用程序。
Ruby 1.9.3
答案 0 :(得分:2)
如果您只想将代码设置在 little 清洁器上方,可以试试这个:
def draw_all
(1..4).each do |n|
init_draw
send "draw_method_#{n}"
@draw.draw
end
end
否则,有一个非常好的SO问题right here可以帮助你。它涉及一个小元编程,基本上重新定义方法并用一些额外的代码包装它们。在您的情况下,您可以使用init_draw
和draw
进行换行。