如何将代码块转换为字符串

时间:2014-06-08 15:33:05

标签: ruby

我想编写一个方法,以字符串形式返回传递给它的任何块的源代码,例如:

=> block_to_string { foo(42) }
=> "foo(42)"

如果块已经是一个字符串,那将很容易,例如:

block_to_string { "foo(42)" }

然后,我错过了该块的语法突出显示等。那我怎么写block_to_string

def block_to_string
  # what goes here?
end

1 个答案:

答案 0 :(得分:3)

我没有使用它,但我想你需要的是酸化宝石:https://github.com/ngty/sourcify

lambda { x + y }.to_source(:strip_enclosure => true)
# >> "(x + y)"