added progressbar listener and made it the new default
This commit is contained in:
parent
02cd1ee662
commit
96f4a2195d
|
@ -34,6 +34,7 @@ Gem::Specification.new do |s|
|
|||
"lib/hydra/listener/abstract.rb",
|
||||
"lib/hydra/listener/minimal_output.rb",
|
||||
"lib/hydra/listener/notifier.rb",
|
||||
"lib/hydra/listener/progress_bar.rb",
|
||||
"lib/hydra/listener/report_generator.rb",
|
||||
"lib/hydra/master.rb",
|
||||
"lib/hydra/message.rb",
|
||||
|
|
|
@ -11,5 +11,5 @@ require 'hydra/listener/abstract'
|
|||
require 'hydra/listener/minimal_output'
|
||||
require 'hydra/listener/report_generator'
|
||||
require 'hydra/listener/notifier'
|
||||
|
||||
require 'hydra/listener/progress_bar'
|
||||
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
module Hydra #:nodoc:
|
||||
module Listener #:nodoc:
|
||||
# Output a progress bar as files are completed
|
||||
class ProgressBar < Hydra::Listener::Abstract
|
||||
# Store the total number of files
|
||||
def testing_begin(files)
|
||||
@total_files = files.size
|
||||
@files_completed = 0
|
||||
@test_output = ""
|
||||
@errors = false
|
||||
render_progress_bar
|
||||
end
|
||||
|
||||
# Increment completed files count and update bar
|
||||
def file_end(file, output)
|
||||
unless output == '.'
|
||||
@output.write "\r#{' '*60}\r#{output}\n"
|
||||
@errors = true
|
||||
end
|
||||
@files_completed += 1
|
||||
render_progress_bar
|
||||
end
|
||||
|
||||
# Break the line
|
||||
def testing_end
|
||||
render_progress_bar
|
||||
@output.write "\n"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def render_progress_bar
|
||||
width = 30
|
||||
complete = ((@files_completed.to_f / @total_files.to_f) * width).to_i
|
||||
@output.write "\r" # move to beginning
|
||||
@output.write 'Progress ['
|
||||
@output.write @errors ? "\033[1;31m" : "\033[1;32m"
|
||||
complete.times{@output.write '#'}
|
||||
@output.write '>'
|
||||
(width-complete).times{@output.write ' '}
|
||||
@output.write "\033[0m"
|
||||
@output.write "] #{@files_completed}/#{@total_files}"
|
||||
@output.flush
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -68,7 +68,7 @@ module Hydra #:nodoc:
|
|||
@files = []
|
||||
@verbose = false
|
||||
@autosort = true
|
||||
@listeners = [Hydra::Listener::MinimalOutput.new]
|
||||
@listeners = [Hydra::Listener::ProgressBar.new]
|
||||
|
||||
yield self if block_given?
|
||||
|
||||
|
|
Loading…
Reference in New Issue