Class: SQLColor

Inherits:
Object
  • Object
show all
Defined in:
lib/tasks/sql_color.rb

Constant Summary collapse

BLACK =
30
RED =
31
GREEN =
32
YELLOW =
33
BLUE =
34
MAGENTA =
35
CYAN =
36
WHITE =
37

Class Method Summary collapse

Class Method Details

.apply(color_code, text, bold = false) ⇒ Object



24
25
26
27
# File 'lib/tasks/sql_color.rb', line 24

def self.apply(color_code, text, bold=false)
  bold = bold ? ";1" : ""
  "\e[#{color_code}#{bold}m#{text}\e[0m"
end

.colorize(sql) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/tasks/sql_color.rb', line 14

def self.colorize(sql)
  if sql.strip.start_with?('--')
    return apply(CYAN, sql)
  end
  sql = sql.gsub(/(CREATE|ALTER|TABLE|COLUMN|ADD|TYPE|BEGIN|TRANSACTION|COMMIT|GRANT|REVOKE| ON |INDEX|UPDATE|SET|WHERE)/){|s|apply(GREEN, s)}
  sql = sql.gsub(/(DROP)/){|s|apply(RED, s)}
  sql = sql.gsub(/("[^"]*")/){|s|apply(WHITE, s, bold=true)}
  return sql
end