将代码块(字符串)分成“主要部分”和“预期返回部分”的最佳方法是什么?这是我的定义:
- 预期返回部分是匹配的行,后跟
/^[ \t]*#[ \t]*=>/
零个或多个不匹配/^[ \t]*#[ \t]*=>/
但匹配的连续行/[ \t]*#(?!\{)/
。 - 主要部分是不是预期返回部分的任何连续行。
主要部分和预期返回部分可能在一个代码块中出现多次。
给定一串代码块,我想得到一个数组数组,每个数组都包含一个标志,表明它是否是预期的返回部分,以及字符串。做这个的最好方式是什么?例如,给定一个字符串code
,其内容为:
def foo bar
"hello" if bar
end
#=> foo(true) == "hello"
#=> foo(false) == nil
a = (0..3).to_a
#=> a == [
# 0,
# 1,
# 2,
# 3
# ]
我想要一个相当于这个的回报:
[[false, <<CHUNK1], [true <<CHUNK2], [true, <<CHUNK3], [false, <<CHUNK4], [true, <<CHUNK5]]
def foo bar
"hello" if bar
end
CHUNK1
#=> foo(true) == "hello"
CHUNK2
#=> foo(false) == nil
CHUNK3
a = (0..3).to_a
CHUNK4
#=> a == [
# 0,
# 1,
# 2,
# 3
# ]
CHUNK5