Class: YARD::Logger

Inherits:
Logger
  • Object
show all
Defined in:
lib/yard-sketchup/yard/logger.rb

Instance Method Summary collapse

Instance Method Details

#progress(msg, nontty_log = :debug) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/yard-sketchup/yard/logger.rb', line 19

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

#show_progressObject



9
10
11
12
13
14
15
16
17
# File 'lib/yard-sketchup/yard/logger.rb', line 9

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