ruby-changes:18392
From: drbrain <ko1@a...>
Date: Wed, 29 Dec 2010 07:23:06 +0900 (JST)
Subject: [ruby-changes:18392] Ruby:r30415 (trunk): Deprecate Rake::RDocTask in favor of RDoc::Task
drbrain 2010-12-29 07:22:58 +0900 (Wed, 29 Dec 2010) New Revision: 30415 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30415 Log: Deprecate Rake::RDocTask in favor of RDoc::Task Removed files: trunk/test/rake/test_rdoc_task.rb Modified files: trunk/ChangeLog trunk/lib/rake/rdoctask.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 30414) +++ ChangeLog (revision 30415) @@ -1,3 +1,7 @@ +Wed Dec 29 07:22:15 2010 Eric Hodel <drbrain@s...> + + * lib/rake/rdoctask.rb: Deprecate in favor of rdoc/task. + Wed Dec 29 07:07:06 2010 Eric Hodel <drbrain@s...> * lib/rdoc: Import RDoc 3.1 Index: lib/rake/rdoctask.rb =================================================================== --- lib/rake/rdoctask.rb (revision 30414) +++ lib/rake/rdoctask.rb (revision 30415) @@ -1,208 +1,4 @@ -require 'rake' -require 'rake/tasklib' +warn 'rake/rdoctask is deprecated. Use rdoc/task instead' -module Rake +require 'rdoc/task' - # Create a documentation task that will generate the RDoc files for - # a project. - # - # The RDocTask will create the following targets: - # - # [<b>:<em>rdoc</em></b>] - # Main task for this RDOC task. - # - # [<b>:clobber_<em>rdoc</em></b>] - # Delete all the rdoc files. This target is automatically - # added to the main clobber target. - # - # [<b>:re<em>rdoc</em></b>] - # Rebuild the rdoc files from scratch, even if they are not out - # of date. - # - # Simple Example: - # - # Rake::RDocTask.new do |rd| - # rd.main = "README.rdoc" - # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb") - # end - # - # The +rd+ object passed to the block is an RDocTask object. See the - # attributes list for the RDocTask class for available customization options. - # - # == Specifying different task names - # - # You may wish to give the task a different name, such as if you are - # generating two sets of documentation. For instance, if you want to have a - # development set of documentation including private methods: - # - # Rake::RDocTask.new(:rdoc_dev) do |rd| - # rd.main = "README.doc" - # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb") - # rd.options << "--all" - # end - # - # The tasks would then be named :<em>rdoc_dev</em>, :clobber_<em>rdoc_dev</em>, and - # :re<em>rdoc_dev</em>. - # - # If you wish to have completely different task names, then pass a Hash as - # first argument. With the <tt>:rdoc</tt>, <tt>:clobber_rdoc</tt> and - # <tt>:rerdoc</tt> options, you can customize the task names to your liking. - # For example: - # - # Rake::RDocTask.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force") - # - # This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc_clean</tt> and - # <tt>:rdoc:force</tt>. - # - class RDocTask < TaskLib - # Name of the main, top level task. (default is :rdoc) - attr_accessor :name - - # Name of directory to receive the html output files. (default is "html") - attr_accessor :rdoc_dir - - # Title of RDoc documentation. (defaults to rdoc's default) - attr_accessor :title - - # Name of file to be used as the main, top level file of the - # RDoc. (default is none) - attr_accessor :main - - # Name of template to be used by rdoc. (defaults to rdoc's default) - attr_accessor :template - - # List of files to be included in the rdoc generation. (default is []) - attr_accessor :rdoc_files - - # Additional list of options to be passed rdoc. (default is []) - attr_accessor :options - - # Whether to run the rdoc process as an external shell (default is false) - attr_accessor :external - - attr_accessor :inline_source - - # Create an RDoc task with the given name. See the RDocTask class overview - # for documentation. - def initialize(name = :rdoc) # :yield: self - if name.is_a?(Hash) - invalid_options = name.keys.map { |k| k.to_sym } - [:rdoc, :clobber_rdoc, :rerdoc] - if !invalid_options.empty? - raise ArgumentError, "Invalid option(s) passed to RDocTask.new: #{invalid_options.join(", ")}" - end - end - - @name = name - @rdoc_files = Rake::FileList.new - @rdoc_dir = 'html' - @main = nil - @title = nil - @template = nil - @external = false - @inline_source = true - @options = [] - yield self if block_given? - define - end - - # Create the tasks defined by this task lib. - def define - if rdoc_task_name != "rdoc" - desc "Build the RDOC HTML Files" - else - desc "Build the #{rdoc_task_name} HTML Files" - end - task rdoc_task_name - - desc "Force a rebuild of the RDOC files" - task rerdoc_task_name => [clobber_task_name, rdoc_task_name] - - desc "Remove rdoc products" - task clobber_task_name do - rm_r rdoc_dir rescue nil - end - - task :clobber => [clobber_task_name] - - directory @rdoc_dir - task rdoc_task_name => [rdoc_target] - file rdoc_target => @rdoc_files + [Rake.application.rakefile] do - rm_r @rdoc_dir rescue nil - @before_running_rdoc.call if @before_running_rdoc - args = option_list + @rdoc_files - if @external - argstring = args.join(' ') - sh %{ruby -Ivendor vendor/rd #{argstring}} - else - require 'rdoc/rdoc' - RDoc::RDoc.new.document(args) - end - end - self - end - - # List of options that will be supplied to RDoc - def option_list - result = @options.dup - result << "-o" << @rdoc_dir - result << "--main" << quote(main) if main - result << "--title" << quote(title) if title - result << "-T" << quote(template) if template - result << "--inline-source" if inline_source && !@options.include?("--inline-source") && !@options.include?("-S") - result - end - - def quote(str) - if @external - "'#{str}'" - else - str - end - end - - def option_string - option_list.join(' ') - end - - # The block passed to this method will be called just before running the - # RDoc generator. It is allowed to modify RDocTask attributes inside the - # block. - def before_running_rdoc(&block) - @before_running_rdoc = block - end - - private - - def rdoc_target - "#{rdoc_dir}/index.html" - end - - def rdoc_task_name - case name - when Hash - (name[:rdoc] || "rdoc").to_s - else - name.to_s - end - end - - def clobber_task_name - case name - when Hash - (name[:clobber_rdoc] || "clobber_rdoc").to_s - else - "clobber_#{name}" - end - end - - def rerdoc_task_name - case name - when Hash - (name[:rerdoc] || "rerdoc").to_s - else - "re#{name}" - end - end - - end -end Index: test/rake/test_rdoc_task.rb =================================================================== --- test/rake/test_rdoc_task.rb (revision 30414) +++ test/rake/test_rdoc_task.rb (revision 30415) @@ -1,84 +0,0 @@ -require 'test/unit' -require 'rake/rdoctask' - -class Rake::TestRDocTask < Test::Unit::TestCase - include Rake - - def setup - Task.clear - end - - def test_tasks_creation - Rake::RDocTask.new - assert Task[:rdoc] - assert Task[:clobber_rdoc] - assert Task[:rerdoc] - end - - def test_tasks_creation_with_custom_name_symbol - rd = Rake::RDocTask.new(:rdoc_dev) - assert Task[:rdoc_dev] - assert Task[:clobber_rdoc_dev] - assert Task[:rerdoc_dev] - assert_equal :rdoc_dev, rd.name - end - - def test_tasks_creation_with_custom_name_string - rd = Rake::RDocTask.new("rdoc_dev") - assert Task[:rdoc_dev] - assert Task[:clobber_rdoc_dev] - assert Task[:rerdoc_dev] - assert_equal "rdoc_dev", rd.name - end - - def test_tasks_creation_with_custom_name_hash - options = { :rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force" } - rd = Rake::RDocTask.new(options) - assert Task[:"rdoc"] - assert Task[:"rdoc:clean"] - assert Task[:"rdoc:force"] - assert_raises(RuntimeError) { Task[:clobber_rdoc] } - assert_equal options, rd.name - end - - def test_tasks_creation_with_custom_name_hash_will_use_default_if_an_option_isnt_given - rd = Rake::RDocTask.new(:clobber_rdoc => "rdoc:clean") - assert Task[:rdoc] - assert Task[:"rdoc:clean"] - assert Task[:rerdoc] - end - - def test_tasks_creation_with_custom_name_hash_raises_exception_if_invalid_option_given - assert_raises(ArgumentError) do - Rake::RDocTask.new(:foo => "bar") - end - - begin - Rake::RDocTask.new(:foo => "bar") - rescue ArgumentError => e - assert_match(/foo/, e.message) - end - end - - def test_inline_source_is_enabled_by_default - rd = Rake::RDocTask.new - assert rd.option_list.include?('--inline-source') - end - - def test_inline_source_option_is_only_appended_if_option_not_already_given - rd = Rake::RDocTask.new - rd.options << '--inline-source' - assert_equal 1, rd.option_list.grep('--inline-source').size - - rd = Rake::RDocTask.new - rd.options << '-S' - assert_equal 1, rd.option_list.grep('-S').size - assert_equal 0, rd.option_list.grep('--inline-source').size - end - - def test_inline_source_option_can_be_disabled - rd = Rake::RDocTask.new - rd.inline_source = false - assert !rd.option_list.include?('--inline-source') - end -end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/