class SprinkleDNS::CLI::InteractiveChangeRequestPrinter

Public Class Methods

new() click to toggle source
# File lib/sprinkle_dns/cli/interactive_change_request_printer.rb, line 3
def initialize
  reset!
end

Public Instance Methods

draw(change_requests, sync_word = "SYNCING", synced_word = "SYNCED") click to toggle source
# 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!() click to toggle source
# File lib/sprinkle_dns/cli/interactive_change_request_printer.rb, line 7
def reset!
  @redraws = 0
end