Class: SprinkleDNS::CLI::InteractiveChangeRequestPrinter

Inherits:
Object
  • Object
show all
Defined in:
lib/sprinkle_dns/cli/interactive_change_request_printer.rb

Instance Method Summary collapse

Constructor Details

#initializeInteractiveChangeRequestPrinter

Returns a new instance of InteractiveChangeRequestPrinter.



3
4
5
# File 'lib/sprinkle_dns/cli/interactive_change_request_printer.rb', line 3

def initialize
  reset!
end

Instance Method Details

#draw(change_requests, sync_word = "SYNCING", synced_word = "SYNCED") ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/sprinkle_dns/cli/interactive_change_request_printer.rb', line 11

def draw(change_requests, sync_word = "SYNCING", synced_word = "SYNCED")
  lines = []

  change_requests.each do |change_request|
    dots   = '.' * change_request.tries
    sync   = change_request.in_sync ? '' : ''
    status = change_request.in_sync ? synced_word : sync_word
    lines << "#{sync} #{status} #{change_request.hosted_zone.name}#{dots}"
  end

  if @redraws > 0
    clear = "\r" + ("\e[A\e[K") * lines.size
    puts clear + lines.join("\n")
  else
    puts lines.join("\n")
  end

  @redraws += 1
  sleep(2)
end

#reset!Object



7
8
9
# File 'lib/sprinkle_dns/cli/interactive_change_request_printer.rb', line 7

def reset!
  @redraws = 0
end