Class: Presentify::Colorifer

Inherits:
Object
  • Object
show all
Defined in:
lib/presentify/colorifer.rb

Constant Summary collapse

RED =
31
GREEN =
32
YELLOW =
33
BLUE =
34
MAGENTA =
35
CYAN =
36
WHITE =
37
GRAY =
2
CONSTANTS_RE =
/true|false|nil/
SINGLE_STRINGS_RE =
/('|").*?((?![\\])\1)/
MUTLTI_STRINGS_RE =
/%(Q|w)[\{\[]([\s\S]*?)[\]\}]/m
COMMENTS_RE =
/# [^\n|\Z]+/
KEYWORDS_RE =
/(\s|\n|\A)(while|do|end|sleep|puts|print|if|unless|else|def|class|ensure|rescue|yield)/
METHOD_CALLS_RE =
/\.[a-z_]+/
ESCAPE_CODES_RE =
/\\(r|b|n|(e\[[\d\;]+(m|A)))/
INTERPOLATIONS_RE =
/\#\{.+?\}/
CLASSES_RE =
/[A-Z][a-zA-Z_]+/

Instance Method Summary collapse

Instance Method Details

#colorify(code) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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