[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]