class Mustermann::AST::Compiler::Variable
@!visibility private
def default(allow_reserved: false, **options)
def default(allow_reserved: false, **options) allow_reserved ? '[\w\-\.~%\:/\?#\[\]@\!\$\&\'\(\)\*\+,;=]' : '[\w\-\.~%]' end
def parametric(string)
def parametric(string) "#{Regexp.escape(name)}(?:=#{string})?" end
def pattern(parametric: false, separator: nil, **options)
def pattern(parametric: false, separator: nil, **options) register_param(parametric: parametric, separator: separator, **options) pattern = super(**options) pattern = parametric(pattern) if parametric pattern = "#{pattern}(?:#{Regexp.escape(separator)}#{pattern})*" if explode and separator pattern end
def qualified(string, **options)
def qualified(string, **options) prefix ? "#{string}{1,#{prefix}}" : super(string, **options) end
def register_param(parametric: false, split_params: nil, separator: nil, **options)
def register_param(parametric: false, split_params: nil, separator: nil, **options) return unless explode and split_params split_params[name] = { separator: separator, parametric: parametric } end
def translate(**options)
def translate(**options) return super(**options) if explode or not options[:parametric] # Remove this line after fixing broken compatibility between 2.1 and 2.2 options.delete(:parametric) if options.has_key?(:parametric) parametric super(parametric: false, **options) end