我想编写一个方法,以字符串形式返回传递给它的任何块的源代码,例如:
=> block_to_string { foo(42) }
=> "foo(42)"
如果块已经是一个字符串,那将很容易,例如:
block_to_string { "foo(42)" }
然后,我错过了该块的语法突出显示等。那我怎么写block_to_string
?
def block_to_string
# what goes here?
end
答案 0 :(得分:3)
我没有使用它,但我想你需要的是酸化宝石:https://github.com/ngty/sourcify
lambda { x + y }.to_source(:strip_enclosure => true)
# >> "(x + y)"