module GreenHat::Spinner
Info Formatter
Public Instance Methods
humanize(time)
click to toggle source
Replace TimeDifference with stackoverflow.com/a/4136485/1678507
# File lib/greenhat/thing/spinner.rb, line 40 def humanize(time) miliseconds = (Time.now - time) * 1000 [[1000, :ms], [60, :s], [60, :m], [24, :h]].map do |count, name| next unless miliseconds.positive? miliseconds, n = miliseconds.divmod(count) "#{n.to_i}#{name}" unless n.to_i.zero? end.compact.reverse.join(' ') end
spin_done()
click to toggle source
# File lib/greenhat/thing/spinner.rb, line 18 def spin_done # Ignore when Quiet is Set return true if Cli.quiet title = @spinner.tokens[:title] spin_end = humanize(@spin_time) title_update = if spin_end.blank? title else "#{title} (#{spin_end.pastel(:blue)})" end @spinner.update(title: title_update) @spinner.success end
spin_start(title)
click to toggle source
# File lib/greenhat/thing/spinner.rb, line 4 def spin_start(title) # Ignore when Quiet is Set return true if Cli.quiet @spin_time = Time.now @spinner = TTY::Spinner.new( "#{time.pastel(:bright_black)} - [:spinner] :title", hide_cursor: true, success_mark: '✔'.pastel(:green) ) @spinner.update(title: title) # Don't Auto spin when debug output is happening @spinner.auto_spin unless ENV['DEBUG'] end
time()
click to toggle source
# File lib/greenhat/thing/spinner.rb, line 35 def time Time.now.strftime('%I:%M:%S').pastel(:bright_black) end