Module: ScanHelpers
Instance Method Summary collapse
Instance Method Details
#gsub_replacements(string, pattern, replacement) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/vsql_node_extensions.rb', line 4 def gsub_replacements(string, pattern, replacement) pattern = Regexp.new(Regexp.escape(pattern)) if pattern.is_a?(String) [].tap do |matches| scanner = StringScanner.new(string) until scanner.eos? return matches unless scanner.scan_until(pattern) matches.push([(scanner.pos - scanner.matched_size)..(scanner.pos - 1), replacement.size - scanner.matched_size, replacement]) end end end |