Sha256: 9a602bad239eeb2b5099b91881e77fa76b18b9d19b69608aeb541ea59c2a59c2

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

module Gitrob
  class CLI
    class ProgressBar
      def initialize(message, options={})
        @options = {
          :format =>
            "#{'[*]'.light_blue} %t %c/%C %B %j% %e",
          :progress_mark => "|".light_blue,
          :remainder_mark => "|"
        }.merge(options)
        @mutex = Mutex.new
        Gitrob::CLI.info(message)
        @progress_bar = ::ProgressBar.create(@options)
      end

      def finish
        progress_bar.finish
      end

      def info(message)
        progress_bar.log("#{'[+]'.light_blue} #{message}")
      end

      def error(message)
        progress_bar.log("#{'[!]'.light_red} #{message}")
      end

      def warn(message)
        progress_bar.log("#{'[!]'.light_yellow} #{message}")
      end

      def method_missing(method, *args, &block)
        if progress_bar.respond_to?(method)
          progress_bar.send(method, *args, &block)
        else
          super
        end
      end

      private

      def progress_bar
        @mutex.synchronize { @progress_bar }
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gitrob-1.1.2 lib/gitrob/cli/progress_bar.rb
gitrob-1.1.1 lib/gitrob/cli/progress_bar.rb
gitrob-1.1.0 lib/gitrob/cli/progress_bar.rb
gitrob-1.0.1 lib/gitrob/cli/progress_bar.rb
gitrob-1.0.0 lib/gitrob/cli/progress_bar.rb