class String def c(*codes) "\e[#{codes.join;}m#{self}\e[0m" end def u gsub(/&(lt|gt|amp|quot|apos);/) do |s| case s when '&' then '&' when '<' then '<' when '>' then '>' when ''' then "'" when '"' then '"' end end end def e gsub(/[&<>'"]/) do |s| case s when '&' then '&' when '<' then '<' when '>' then '>' when "'" then ''' when '"' then '"' end end end end