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

Ruby 如何将代码块转换为字符串,ruby,Ruby,我想写一个方法,返回作为字符串传递给它的任何块的源代码,例如: => block_to_string { foo(42) } => "foo(42)" block_to_string { "foo(42)" } 如果块已经是字符串,则很容易,例如: => block_to_string { foo(42) } => "foo(42)" block_to_string { "foo(42)" } 但是,对于那个块,我会错过语法突出显示等。那么,如何将块写入字符串呢

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

=> block_to_string { foo(42) }
=> "foo(42)"
block_to_string { "foo(42)" }
如果块已经是字符串,则很容易,例如:

=> block_to_string { foo(42) }
=> "foo(42)"
block_to_string { "foo(42)" }
但是,对于那个块,我会错过语法突出显示等。那么,如何将
块写入字符串呢

def block_to_string
  # what goes here?
end

我没用过,但我想sourcify gem是你需要的:


如何定义
eval\u code\u on
?您可以使用。现在无法检查它是与
Proc
一起工作,还是仅与
Method
一起工作……此gem有9年历史,不受支持,并且有Ruby 1.9之外的错误警告。