summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzzak <zzakscott@gmail.com>2023-02-01 12:22:23 +0900
committergit <svn-admin@ruby-lang.org>2023-02-03 23:41:06 +0000
commite04d20bc482e39262a648e71193c1739b5a702fc (patch)
treecc475443ce6ff061714d5d606115d5f64e4541a4
parenta8000d06cc718349192acbc8343ba849ba34a67f (diff)
downloadruby-e04d20bc482e39262a648e71193c1739b5a702fc.tar.gz
[ruby/rdoc] Add rdoc:coverage default task
https://github.com/ruby/rdoc/commit/157fbaf575
-rw-r--r--lib/rdoc/task.rb28
-rw-r--r--test/rdoc/test_rdoc_task.rb9
2 files changed, 35 insertions, 2 deletions
diff --git a/lib/rdoc/task.rb b/lib/rdoc/task.rb
index 8ea2d0588c..72b5111ff6 100644
--- a/lib/rdoc/task.rb
+++ b/lib/rdoc/task.rb
@@ -50,6 +50,9 @@ require 'rake/tasklib'
# [rerdoc]
# Rebuild the rdoc files from scratch, even if they are not out of date.
#
+# [rdoc:coverage]
+# Print RDoc coverage report for all rdoc files.
+#
# Simple Example:
#
# require 'rdoc/task'
@@ -90,8 +93,8 @@ require 'rake/tasklib'
# RDoc::Task.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>.
+# This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc:clean</tt>,
+# <tt>:rdoc:force</tt>, and <tt>:rdoc:coverage</tt>.
class RDoc::Task < Rake::TaskLib
@@ -248,6 +251,16 @@ class RDoc::Task < Rake::TaskLib
RDoc::RDoc.new.document args
end
+ namespace rdoc_task_name do
+ desc coverage_task_description
+ task coverage_task_name do
+ @before_running_rdoc.call if @before_running_rdoc
+ opts = option_list << "-C"
+ args = opts + @rdoc_files
+
+ $stderr.puts "rdoc #{args.join ' '}" if Rake.application.options.trace
+ end
+ end
self
end
@@ -288,6 +301,13 @@ class RDoc::Task < Rake::TaskLib
"Rebuild RDoc HTML files"
end
+ ##
+ # Task description for the coverage task or its renamed description
+
+ def coverage_task_description
+ "Print RDoc coverage report"
+ end
+
private
def rdoc_target
@@ -315,6 +335,10 @@ class RDoc::Task < Rake::TaskLib
end
end
+ def coverage_task_name
+ "coverage"
+ end
+
end
# :stopdoc:
diff --git a/test/rdoc/test_rdoc_task.rb b/test/rdoc/test_rdoc_task.rb
index 23add7d5fe..67d223087b 100644
--- a/test/rdoc/test_rdoc_task.rb
+++ b/test/rdoc/test_rdoc_task.rb
@@ -50,6 +50,7 @@ class TestRDocTask < RDoc::TestCase
assert Rake::Task[:rdoc]
assert Rake::Task[:clobber_rdoc]
assert Rake::Task[:rerdoc]
+ assert Rake::Task[:"rdoc:coverage"]
assert_equal ["html/created.rid"], Rake::Task[:rdoc].prerequisites
end
@@ -58,6 +59,7 @@ class TestRDocTask < RDoc::TestCase
assert Rake::Task[:rdoc_dev]
assert Rake::Task[:clobber_rdoc_dev]
assert Rake::Task[:rerdoc_dev]
+ assert Rake::Task[:"rdoc_dev:coverage"]
assert_equal :rdoc_dev, rd.name
end
@@ -110,11 +112,16 @@ class TestRDocTask < RDoc::TestCase
assert_equal 'Rebuild RDoc HTML files', @t.rerdoc_task_description
end
+ def test_coverage_task_description
+ assert_equal 'Print RDoc coverage report', @t.coverage_task_description
+ end
+
def test_tasks_creation_with_custom_name_string
rd = RDoc::Task.new("rdoc_dev")
assert Rake::Task[:rdoc_dev]
assert Rake::Task[:clobber_rdoc_dev]
assert Rake::Task[:rerdoc_dev]
+ assert Rake::Task[:"rdoc_dev:coverage"]
assert_equal "rdoc_dev", rd.name
end
@@ -131,6 +138,7 @@ class TestRDocTask < RDoc::TestCase
assert Rake::Task[:"rdoc"]
assert Rake::Task[:"rdoc:clean"]
assert Rake::Task[:"rdoc:force"]
+ assert Rake::Task[:"rdoc:coverage"]
assert_raise(RuntimeError) { Rake::Task[:clobber_rdoc] }
assert_equal options, rd.name
end
@@ -140,6 +148,7 @@ class TestRDocTask < RDoc::TestCase
assert Rake::Task[:rdoc]
assert Rake::Task[:"rdoc:clean"]
assert Rake::Task[:rerdoc]
+ assert Rake::Task[:"rdoc:coverage"]
end
def test_tasks_creation_with_custom_name_hash_raises_exception_if_invalid_option_given