lib/rubygems_plugin.rb in yard-0.6.4 vs lib/rubygems_plugin.rb in yard-0.6.5

- old
+ new

@@ -1,100 +1,4 @@ -require 'rubygems/specification' -require 'rubygems/doc_manager' - -unless defined? Gem::DocManager.load_yardoc - class Gem::Specification - # has_rdoc should not be ignored! - overwrite_accessor(:has_rdoc) { @has_rdoc } - overwrite_accessor(:has_rdoc=) {|v| @has_rdoc = v } - - # @since 0.5.3 - def has_yardoc=(value) - @has_rdoc = 'yard' - end - - def has_yardoc - @has_rdoc == 'yard' - end - - undef has_rdoc? - def has_rdoc? - @has_rdoc && @has_rdoc != 'yard' - end - - alias has_yardoc? has_yardoc - end - - class Gem::DocManager - def self.load_yardoc - require File.dirname(__FILE__) + '/yard' - end - - def run_yardoc(*args) - args << '--quiet' - args << @spec.require_paths - if @spec.extra_rdoc_files.size > 0 - args << '-' - args += @spec.extra_rdoc_files - 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 "... YARDDOC 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 - - undef setup_rdoc - def setup_rdoc - if File.exist?(@doc_dir) && !File.writable?(@doc_dir) then - raise Gem::FilePermissionError.new(@doc_dir) - end - - FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir) - - self.class.load_rdoc if @spec.has_rdoc? - self.class.load_yardoc if @spec.has_yardoc? - end - - def install_yardoc - rdoc_dir = File.join(@doc_dir, 'rdoc') - - FileUtils.rm_rf rdoc_dir - - say "Installing YARD documentation for #{@spec.full_name}..." - run_yardoc '-o', rdoc_dir - end - - def install_ri_yard - install_ri_yard_orig if @spec.has_rdoc? - return if @spec.has_rdoc? == false - return if @spec.has_yardoc? - - self.class.load_yardoc - say "Building YARD (yri) index for #{@spec.full_name}..." - run_yardoc '-c', '-n' - end - alias install_ri_yard_orig install_ri - alias install_ri install_ri_yard - - def install_rdoc_yard - if @spec.has_rdoc? - install_rdoc_yard_orig - elsif @spec.has_yardoc? - install_yardoc - end - end - alias install_rdoc_yard_orig install_rdoc - alias install_rdoc install_rdoc_yard - end +unless defined?(Gem::DocManager.load_yardoc) + require File.expand_path(File.dirname(__FILE__) + '/yard/rubygems/specification') + require File.expand_path(File.dirname(__FILE__) + '/yard/rubygems/doc_manager') end