def run(*args)
log.show_progress = true
if args.size == 0 || !args.first.nil?
return unless parse_arguments(*args)
end
checksums = nil
if use_cache
Registry.load
checksums = Registry.checksums.dup
end
if save_yardoc
Registry.lock_for_writing do
YARD.parse(files, excluded)
Registry.save(use_cache)
end
else
YARD.parse(files, excluded)
end
if generate
run_generate(checksums)
copy_assets
elsif list
print_list
end
if !list && statistics && log.level < Logger::ERROR
Registry.load_all
log.enter_level(Logger::ERROR) do
Stats.new(false).run(*args)
end
end
true
ensure
log.show_progress = false
end