Sha256: 904f9f1acd159b881f51bdcac235ac83d6d3c06977ec3e6c2257d9d01453bd2d

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

require 'yard/logging'

# Hack to show some progress on Windows while building the docs.
# Helpful in seeing what takes most time.
# It's Copy+Paste from YARD 0.9.9 with some noted edits.
module YARD
  class Logger < ::Logger

    def show_progress
      return false if YARD.ruby18? # threading is too ineffective for progress support
      # <hack>
      # return false if YARD.windows? # windows has poor ANSI support
      # </hack>
      return false unless io.tty? # no TTY support on IO
      return false unless level > INFO # no progress in verbose/debug modes
      @show_progress
    end

    def progress(msg, nontty_log = :debug)
      send(nontty_log, msg) if nontty_log
      return unless show_progress
      icon = ""
      if defined?(::Encoding)
        icon = PROGRESS_INDICATORS[@progress_indicator] + " "
      end
      @mutex.synchronize do
        print("\e[2K\e[?25l\e[1m#{icon}#{msg}\e[0m\r")
        @progress_msg = msg
        if Time.now - @progress_last_update > 0.2
          @progress_indicator += 1
          @progress_indicator %= PROGRESS_INDICATORS.size
          @progress_last_update = Time.now
        end
      end
      Thread.new do
        sleep(0.05)
        # <hack>
        # progress(msg + ".", nil) if @progress_msg == msg
        # </hack>
        progress(msg, nil) if @progress_msg == msg
      end
    end

  end
end if true # Set to false to disable hack.

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
yard-sketchup-1.1.3 lib/yard-sketchup/yard/logger.rb
yard-sketchup-1.0.2 lib/yard-sketchup/yard/logger.rb
yard-sketchup-1.0.1 lib/yard-sketchup/yard/logger.rb