1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
# frozen_string_literal: true
# Aruba
module Aruba
# Api
module Api
# Text manipulation
module Text
# Unescape text
#
# '\n' => "\n"
# '\e' => "\e"
# '\033' => "\e"
# '\"' => '"'
#
# @param [#to_s] text
# Input
def unescape_text(text)
text
.gsub('\n', "\n")
.gsub('\"', '"')
.gsub('\e', "\e")
.gsub('\033', "\e")
.gsub('\016', "\016")
.gsub('\017', "\017")
.gsub('\t', "\t")
end
# Remove ansi characters from text
#
# @param [#to_s] text
# Input
def extract_text(text)
text
.gsub(/(?:\e|\033)\[\d+(?>(;\d+)*)m/, '')
.gsub(/\\\[|\\\]/, '')
.gsub(/\007|\016|\017/, '')
end
# Unescape special characters and remove ANSI characters
#
# @param [#to_s] text
# The text to sanitize
def sanitize_text(text)
text = unescape_text(text)
text = extract_text(text) if aruba.config.remove_ansi_escape_sequences
text.chomp
end
end
end
end
|