class Mustermann::AST::Compiler::Variable

@!visibility private

Public Instance Methods

default(allow_reserved: false, **options) click to toggle source

@!visibility private

# File lib/mustermann/ast/compiler.rb, line 112
def default(allow_reserved: false, **options)
  allow_reserved ? '[\w\-\.~%\:/\?#\[\]@\!\$\&\'\(\)\*\+,;=]' : '[\w\-\.~%]'
end
parametric(string) click to toggle source

@!visibility private

# File lib/mustermann/ast/compiler.rb, line 102
def parametric(string)
  "#{Regexp.escape(name)}(?:=#{string})?"
end
pattern(parametric: false, separator: nil, **options) click to toggle source

@!visibility private

# File lib/mustermann/ast/compiler.rb, line 93
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
qualified(string, **options) click to toggle source

@!visibility private

# File lib/mustermann/ast/compiler.rb, line 107
def qualified(string, **options)
  prefix ? "#{string}{1,#{prefix}}" : super(string, **options)
end
register_param(parametric: false, split_params: nil, separator: nil, **options) click to toggle source

@!visibility private

# File lib/mustermann/ast/compiler.rb, line 117
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
translate(**options) click to toggle source

@!visibility private

# File lib/mustermann/ast/compiler.rb, line 85
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