class Presentify::Colorifer
Constants
- BLUE
- CLASSES_RE
- COMMENTS_RE
- CONSTANTS_RE
- CYAN
- ESCAPE_CODES_RE
- GRAY
- GREEN
- INTERPOLATIONS_RE
- KEYWORDS_RE
- MAGENTA
- METHOD_CALLS_RE
- MUTLTI_STRINGS_RE
- RED
- SINGLE_STRINGS_RE
- WHITE
- YELLOW
Public Instance Methods
colorify(code)
click to toggle source
# File lib/presentify/colorifer.rb, line 22 def colorify(code) #code = code.gsub NUMBERS_RE, "\e[3#{RED}m\\2\e[0m\\3" replacify code.dup, { CONSTANTS_RE => RED, ESCAPE_CODES_RE => YELLOW, INTERPOLATIONS_RE => YELLOW, MUTLTI_STRINGS_RE => GREEN, SINGLE_STRINGS_RE => GREEN, COMMENTS_RE => GRAY, KEYWORDS_RE => MAGENTA, METHOD_CALLS_RE => CYAN, CLASSES_RE => YELLOW } end
Private Instance Methods
placeholder(num)
click to toggle source
# File lib/presentify/colorifer.rb, line 62 def placeholder(num) "-----placeholder-#{num}----" end
replacify(code, res)
click to toggle source
# File lib/presentify/colorifer.rb, line 40 def replacify(code, res) stash = [] # applying colors res.each do |re, color| while code.match(re) match = $&.dup code.sub! match, placeholder(stash.size) replacement = "\e[#{color}m#{match}\e[0m" replacement << "\e[#{GREEN}m" if re == ESCAPE_CODES_RE || re == INTERPOLATIONS_RE stash << replacement end end # rollback while entry = stash.pop code.sub! placeholder(stash.size), entry end code end