def to_r_source
source = regex_builder
source.group do
source.escaped_prefix
first = true
@variable_specs.each do | var, expand , max_length |
if expand
source.capture do
source.separated_list(first) do
source.character_class('+')\
.escaped_pair_connector\
.character_class_with_comma(max_length)
end
end
else
source.group do
source.escaped_separator unless first
source << Regexp.escape(var)
source.group do
source.escaped_pair_connector
source.capture do
source.character_class_with_comma(max_length)
end
source << '|' unless self.class::PAIR_IF_EMPTY
end
end.length('?')
end
first = false
end
end.length('?')
return source.join
end