def to_r_source
vs = @variable_specs.size - 1
i = 0
source = regex_builder
source.group do
source.escaped_prefix
@variable_specs.each do | var, expand , max_length |
last = (vs == i)
first = (i == 0)
if expand
source.group(true) do
source.separated_list(first) do
source.group do
source.character_class('+').reluctant
source.escaped_pair_connector
end.length('?')
source.character_class(max_length)
end
end
else
source.escaped_separator unless first
source.group(true) do
if last
source.character_class_with_comma(max_length)
else
source.character_class(max_length)
end
end
end
i = i+1
end
end.length('?')
return source.join
end