class MODL::Parser::Substitutions

Escape-sequence replacements for MODL files.

Public Class Methods

process(str) click to toggle source

Replace all escape sequences in the supplied string and return the new value.

# File lib/modl/parser/substitutions.rb, line 81
def self.process(str)
  return str unless str.is_a? String

  # Remove unescaped graves and double quotes
  new_str = Sutil.unquote(str)

  new_str = UnicodeEscapeReplacer.convert_unicode_sequences new_str

  # Handle escape sequences
  @@subs.each do |s|
    loop do
      prev = new_str
      new_str = new_str.sub(s[0], s[1])
      break unless new_str && new_str != prev
    end
  end
  new_str
end