Sha256: 39a6bdb6937b76c5dfd3fec3de64054f098aa4ee3794c97c54b02ff958e08af5

Contents?: true

Size: 1.28 KB

Versions: 20

Compression:

Stored size: 1.28 KB

Contents

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 'Hydra Testing ['
        @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

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
hydra-0.19.3 lib/hydra/listener/progress_bar.rb
hydra-0.19.2 lib/hydra/listener/progress_bar.rb
hydra-0.19.1 lib/hydra/listener/progress_bar.rb
hydra-0.19.0 lib/hydra/listener/progress_bar.rb
hydra-0.18.0 lib/hydra/listener/progress_bar.rb
sskirby-hydra-0.17.1 lib/hydra/listener/progress_bar.rb
sskirby-hydra-0.16.10 lib/hydra/listener/progress_bar.rb
hydra-0.17.0 lib/hydra/listener/progress_bar.rb
sskirby-hydra-0.16.9 lib/hydra/listener/progress_bar.rb
hydra-0.16.7 lib/hydra/listener/progress_bar.rb
hydra-0.16.6 lib/hydra/listener/progress_bar.rb
hydra-0.16.5 lib/hydra/listener/progress_bar.rb
hydra-0.16.4 lib/hydra/listener/progress_bar.rb
hydra-0.16.3 lib/hydra/listener/progress_bar.rb
hydra-0.16.2 lib/hydra/listener/progress_bar.rb
hydra-0.16.1 lib/hydra/listener/progress_bar.rb
hydra-0.16.0 lib/hydra/listener/progress_bar.rb
hydra-0.15.1 lib/hydra/listener/progress_bar.rb
hydra-0.15.0 lib/hydra/listener/progress_bar.rb
hydra-0.14.1 lib/hydra/listener/progress_bar.rb