如何将方法作为字符串传递并调用它

时间:2014-11-14 18:50:58

标签: ruby

我有一个这样的过程

Boxer = Proc.new { | box, goal | puts "  [#{ box }] #{ goal }" }

我称之为

Boxer[ 'X', goal ]

我想加入ansi转义代码来改变颜色 我希望能够传入一个字符串并让它打印出那种颜色 所以我的新拳击手看起来像这样

Boxer = Proc.new { |box, goal, color | puts "  [#{ box }] #{ goal }".color }

我想这样称呼它

Boxer[ 'X', goal, 'red' ]

我正在使用着色宝石,但仍然无法让Proc按照我想要的方式行事 我尝试过eval和其他一些东西。

1 个答案:

答案 0 :(得分:6)

如果我理解正确,请尝试

Boxer = Proc.new { |box, goal, color | puts "  [#{ box }] #{ goal }".send(color) }