这可能吗?
def block_to_s(&blk)
#code to print blocks code here
end
puts block_to_s do
str = "Hello"
str.reverse!
print str
end
这将打印终端的跟随:
str = "Hello"
str.reverse!
print str
答案 0 :(得分:8)
这个问题与:
有关require 'sourcify'
def block_to_s(&blk)
blk.to_source(:strip_enclosure => true)
end
puts block_to_s {
str = "Hello"
str.reverse!
print str
}
在上面,请注意您必须在puts
(block_to_s
... end
)的参数周围添加括号,或使用{...}
而不是{{1因为stackoverflow中反复讨论的连接强度。
这会给你:
do ... end
相当于原始块作为ruby脚本,但不是完全相同的字符串。