[ruby/rdoc] Add rdoc:coverage default task

https://github.com/ruby/rdoc/commit/157fbaf575
This commit is contained in:
zzak 2023-02-01 12:22:23 +09:00 committed by git
parent a8000d06cc
commit e04d20bc48
2 changed files with 35 additions and 2 deletions

View File

@ -50,6 +50,9 @@ require 'rake/tasklib'
# [rerdoc] # [rerdoc]
# Rebuild the rdoc files from scratch, even if they are not out of date. # 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: # Simple Example:
# #
# require 'rdoc/task' # require 'rdoc/task'
@ -90,8 +93,8 @@ require 'rake/tasklib'
# RDoc::Task.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", # RDoc::Task.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean",
# :rerdoc => "rdoc:force") # :rerdoc => "rdoc:force")
# #
# This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc:clean</tt> and # This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc:clean</tt>,
# <tt>:rdoc:force</tt>. # <tt>:rdoc:force</tt>, and <tt>:rdoc:coverage</tt>.
class RDoc::Task < Rake::TaskLib class RDoc::Task < Rake::TaskLib
@ -248,6 +251,16 @@ class RDoc::Task < Rake::TaskLib
RDoc::RDoc.new.document args RDoc::RDoc.new.document args
end 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 self
end end
@ -288,6 +301,13 @@ class RDoc::Task < Rake::TaskLib
"Rebuild RDoc HTML files" "Rebuild RDoc HTML files"
end end
##
# Task description for the coverage task or its renamed description
def coverage_task_description
"Print RDoc coverage report"
end
private private
def rdoc_target def rdoc_target
@ -315,6 +335,10 @@ class RDoc::Task < Rake::TaskLib
end end
end end
def coverage_task_name
"coverage"
end
end end
# :stopdoc: # :stopdoc:

View File

@ -50,6 +50,7 @@ class TestRDocTask < RDoc::TestCase
assert Rake::Task[:rdoc] assert Rake::Task[:rdoc]
assert Rake::Task[:clobber_rdoc] assert Rake::Task[:clobber_rdoc]
assert Rake::Task[:rerdoc] assert Rake::Task[:rerdoc]
assert Rake::Task[:"rdoc:coverage"]
assert_equal ["html/created.rid"], Rake::Task[:rdoc].prerequisites assert_equal ["html/created.rid"], Rake::Task[:rdoc].prerequisites
end end
@ -58,6 +59,7 @@ class TestRDocTask < RDoc::TestCase
assert Rake::Task[:rdoc_dev] assert Rake::Task[:rdoc_dev]
assert Rake::Task[:clobber_rdoc_dev] assert Rake::Task[:clobber_rdoc_dev]
assert Rake::Task[:rerdoc_dev] assert Rake::Task[:rerdoc_dev]
assert Rake::Task[:"rdoc_dev:coverage"]
assert_equal :rdoc_dev, rd.name assert_equal :rdoc_dev, rd.name
end end
@ -110,11 +112,16 @@ class TestRDocTask < RDoc::TestCase
assert_equal 'Rebuild RDoc HTML files', @t.rerdoc_task_description assert_equal 'Rebuild RDoc HTML files', @t.rerdoc_task_description
end 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 def test_tasks_creation_with_custom_name_string
rd = RDoc::Task.new("rdoc_dev") rd = RDoc::Task.new("rdoc_dev")
assert Rake::Task[:rdoc_dev] assert Rake::Task[:rdoc_dev]
assert Rake::Task[:clobber_rdoc_dev] assert Rake::Task[:clobber_rdoc_dev]
assert Rake::Task[:rerdoc_dev] assert Rake::Task[:rerdoc_dev]
assert Rake::Task[:"rdoc_dev:coverage"]
assert_equal "rdoc_dev", rd.name assert_equal "rdoc_dev", rd.name
end end
@ -131,6 +138,7 @@ class TestRDocTask < RDoc::TestCase
assert Rake::Task[:"rdoc"] assert Rake::Task[:"rdoc"]
assert Rake::Task[:"rdoc:clean"] assert Rake::Task[:"rdoc:clean"]
assert Rake::Task[:"rdoc:force"] assert Rake::Task[:"rdoc:force"]
assert Rake::Task[:"rdoc:coverage"]
assert_raise(RuntimeError) { Rake::Task[:clobber_rdoc] } assert_raise(RuntimeError) { Rake::Task[:clobber_rdoc] }
assert_equal options, rd.name assert_equal options, rd.name
end end
@ -140,6 +148,7 @@ class TestRDocTask < RDoc::TestCase
assert Rake::Task[:rdoc] assert Rake::Task[:rdoc]
assert Rake::Task[:"rdoc:clean"] assert Rake::Task[:"rdoc:clean"]
assert Rake::Task[:rerdoc] assert Rake::Task[:rerdoc]
assert Rake::Task[:"rdoc:coverage"]
end end
def test_tasks_creation_with_custom_name_hash_raises_exception_if_invalid_option_given def test_tasks_creation_with_custom_name_hash_raises_exception_if_invalid_option_given