def run_yardoc(*args)
args << '--quiet'
args << '--backtrace' if Gem.configuration.backtrace
unless File.file?(File.join(@spec.full_gem_path, '.yardopts'))
args << @spec.require_paths
if @spec.extra_rdoc_files.size > 0
args << '-'
args += @spec.extra_rdoc_files
end
end
args = args.flatten.map {|arg| arg.to_s }
old_pwd = Dir.pwd
Dir.chdir(@spec.full_gem_path)
YARD::CLI::Yardoc.run(*args)
rescue Errno::EACCES => e
dirname = File.dirname e.message.split("-")[1].strip
raise Gem::FilePermissionError.new(dirname)
rescue => ex
alert_error "While generating documentation for #{@spec.full_name}"
ui.errs.puts "... MESSAGE: #{ex}"
ui.errs.puts "... YARDOC args: #{args.join(' ')}"
ui.errs.puts "\t#{ex.backtrace.join("\n\t")}" if Gem.configuration.backtrace
ui.errs.puts "(continuing with the rest of the installation)"
ensure
Dir.chdir(old_pwd)
end