Class: Screenout

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

Constant Summary collapse

DEFAULT_STATUSLINE =
'%H %`%-w%{=b bw}%n %t%{-}%+w'
DEFAULT_SCREEN_CMD =
'screen'
SCREEN_COLOR =
{
  :black  => 'dd',
  :green  => 'gw',
  :yellow => 'yk',
  :red    => 'rw'
}

Class Method Summary collapse

Class Method Details

.clearObject



17
18
19
# File 'lib/screenout.rb', line 17

def self.clear
  send_cmd('')
end

.execute?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/screenout.rb', line 26

def self.execute?
  !($TESTING || !run_screen_session?)
end

.message(msg, color = :black) ⇒ Object



11
12
13
14
15
# File 'lib/screenout.rb', line 11

def self.message(msg, color = :black)
  col = SCREEN_COLOR[color]
  msg = %Q[ %{=b #{col}} #{msg} %{-}]
  send_cmd(msg)
end

.run_screen_session?Boolean

Returns:

  • (Boolean)


21
22
23
24
# File 'lib/screenout.rb', line 21

def self.run_screen_session?
  str = `#{screen_cmd} -ls`
  str.match(/(\d+) Socket/) && ($1.to_i > 0)
end

.screen_cmdObject



33
# File 'lib/screenout.rb', line 33

def self.screen_cmd; @screen_cmd || DEFAULT_SCREEN_CMD.dup; end

.screen_cmd=(a) ⇒ Object



34
# File 'lib/screenout.rb', line 34

def self.screen_cmd=(a); @screen_cmd = a; end

.send_cmd(msg) ⇒ Object



36
37
38
39
40
# File 'lib/screenout.rb', line 36

def self.send_cmd(msg)
  cmd = %(#{screen_cmd} -X eval 'hardstatus alwayslastline "#{(statusline + msg).gsub('"', '\"')}"') #' stupid ruby-mode
  system cmd
  nil
end

.statuslineObject



31
# File 'lib/screenout.rb', line 31

def self.statusline; @statusline || DEFAULT_STATUSLINE.dup; end

.statusline=(a) ⇒ Object



32
# File 'lib/screenout.rb', line 32

def self.statusline=(a); @statusline = a; end