Class: MODL::Parser::Substitutions
- Inherits:
-
Object
- Object
- MODL::Parser::Substitutions
- Defined in:
- lib/modl/parser/substitutions.rb
Overview
Escape-sequence replacements for MODL files.
Constant Summary collapse
- @@subs =
[ ['~\\', '\\'], ['\\\\', '\\'], ['~~', '~'], ['\\~', '~'], ['~(', '('], ['\\(', '('], ['~)', ')'], ['\\)', ')'], ['~[', '['], ['\\[', '['], ['~]', ']'], ['\\]', ']'], ['~{', '{'], ['\\{', '{'], ['~}', '}'], ['\\}', '}'], ['~;', ';'], ['\\;', ';'], ['~:', ':'], ['\\:', ':'], ['~`', '`'], ['\\`', '`'], ['~"', '"'], ['\\"', '"'], ['~=', '='], ['\\=', '='], ['~/', '/'], ['\\/', '/'], ['<', '<'], ['\\<', '<'], ['~>', '>'], ['\\>', '>'], ['~&', '&'], ['\\&', '&'], ['!', '!'], ['\\!', '!'], ['~|', '|'], ['\\|', '|'], ['\\t', "\t"], ['\\n', "\n"], ['\\b', "\b"], ['\\f', "\f"], ['\\r', "\r"] ]
Class Method Summary collapse
-
.process(str) ⇒ Object
Replace all escape sequences in the supplied string and return the new value.
Class Method Details
.process(str) ⇒ Object
Replace all escape sequences in the supplied string and return the new value.
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/modl/parser/substitutions.rb', line 77 def self.process(str) return str unless str.is_a? String # Remove unescaped graves and double quotes new_str = Sutil.unquote(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 |