Class: Prompt

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.color(color = 'default') ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/prompt.rb', line 6

def self.color(color='default')
  color_map = {
    'blue' => "\e[34m",
    'green' => "\e[32m",
    'cyan' => "\e[36m",
    'default' => "\e[0m",
  }
  return color_map[color] ? color_map[color] : color_map['default']
end

.parse(str) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/prompt.rb', line 38

def self.parse(str)
  str = str.dup
  parse_map.each do |key,value|
    str.gsub!(key,value)
  end
  return str
end

.parse_mapObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/prompt.rb', line 21

def self.parse_map
  return {
    '%h' => `hostname -s`.chomp,
    '%d' => Time.now.strftime('%d'),
    '%u' => Etc.getpwuid.name,
    '%w' => Dir.pwd.gsub(ENV['HOME'],'~'),
    '%W' => File.basename(Dir.pwd.gsub(ENV['HOME'],'~')),
    '%Cb' => color('blue'),
    '%Cc' => color('cyan'),
    '%Cg' => color('green'),
    '%CC' => color,
    '%t' => Time.now.strftime('%H:%M:%S'),
    '%%' => '%',
    '%$' => Process.euid == 0 ? '#' : '$'
  }
end

Instance Method Details

#colorize(text, color_code) ⇒ Object



2
3
4
# File 'lib/prompt.rb', line 2

def colorize(text, color_code)
    "#{color_code}#{text}\e[0m"
end

#green_bg(text) ⇒ Object



19
# File 'lib/prompt.rb', line 19

def green_bg(text); colorize(text, "\e[42m"); end

#magenta_text(text) ⇒ Object



17
# File 'lib/prompt.rb', line 17

def magenta_text(text); colorize(text, "\e[35m"); end

#red_text(text) ⇒ Object



16
# File 'lib/prompt.rb', line 16

def red_text(text); colorize(text, "\e[31m"); end