Class: ParallelStatus

Inherits:
Object
  • Object
show all
Defined in:
lib/capistrano/progress/parallel_status.rb

Instance Method Summary collapse

Constructor Details

#initialize(servers) ⇒ ParallelStatus

Returns a new instance of ParallelStatus.



3
4
5
6
7
8
# File 'lib/capistrano/progress/parallel_status.rb', line 3

def initialize(servers)
  @statuses = {}
  servers.each { |server|
    @statuses[server] = "-"
  }
end

Instance Method Details

#blockObject



33
34
35
36
# File 'lib/capistrano/progress/parallel_status.rb', line 33

def block
  render
  yield
end

#clearObject



26
27
28
29
30
31
# File 'lib/capistrano/progress/parallel_status.rb', line 26

def clear
  count = @statuses.keys.length + 4
  count.times do
    print "\e[1A\e[K"
  end
end

#renderObject



18
19
20
21
22
23
24
# File 'lib/capistrano/progress/parallel_status.rb', line 18

def render
  table = Terminal::Table.new :headings => ["Server", "Roles", "Status"]
  @statuses.each do |server,message|
    table << [server.to_s, server.roles_string, message]
  end
  puts table
end

#step(server, message) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/capistrano/progress/parallel_status.rb', line 10

def step(server, message)
  @statuses[server] = message
  Thread.exclusive do
    clear
    render
  end
end