Skip to content

Commit 157fbaf

Browse files
committed
Add rdoc:coverage default task
1 parent 71dd5c7 commit 157fbaf

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

lib/rdoc/task.rb

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@
5050
# [rerdoc]
5151
# Rebuild the rdoc files from scratch, even if they are not out of date.
5252
#
53+
# [rdoc:coverage]
54+
# Print RDoc coverage report for all rdoc files.
55+
#
5356
# Simple Example:
5457
#
5558
# require 'rdoc/task'
@@ -90,8 +93,8 @@
9093
# RDoc::Task.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean",
9194
# :rerdoc => "rdoc:force")
9295
#
93-
# This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc:clean</tt> and
94-
# <tt>:rdoc:force</tt>.
96+
# This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc:clean</tt>,
97+
# <tt>:rdoc:force</tt>, and <tt>:rdoc:coverage</tt>.
9598

9699
class RDoc::Task < Rake::TaskLib
97100

@@ -248,6 +251,16 @@ def define
248251
RDoc::RDoc.new.document args
249252
end
250253

254+
namespace rdoc_task_name do
255+
desc coverage_task_description
256+
task coverage_task_name do
257+
@before_running_rdoc.call if @before_running_rdoc
258+
opts = option_list << "-C"
259+
args = opts + @rdoc_files
260+
261+
$stderr.puts "rdoc #{args.join ' '}" if Rake.application.options.trace
262+
end
263+
end
251264
self
252265
end
253266

@@ -288,6 +301,13 @@ def rerdoc_task_description
288301
"Rebuild RDoc HTML files"
289302
end
290303

304+
##
305+
# Task description for the coverage task or its renamed description
306+
307+
def coverage_task_description
308+
"Print RDoc coverage report"
309+
end
310+
291311
private
292312

293313
def rdoc_target
@@ -315,6 +335,10 @@ def rerdoc_task_name
315335
end
316336
end
317337

338+
def coverage_task_name
339+
"coverage"
340+
end
341+
318342
end
319343

320344
# :stopdoc:

test/rdoc/test_rdoc_task.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def test_tasks_creation
5050
assert Rake::Task[:rdoc]
5151
assert Rake::Task[:clobber_rdoc]
5252
assert Rake::Task[:rerdoc]
53+
assert Rake::Task[:"rdoc:coverage"]
5354
assert_equal ["html/created.rid"], Rake::Task[:rdoc].prerequisites
5455
end
5556

@@ -58,6 +59,7 @@ def test_tasks_creation_with_custom_name_symbol
5859
assert Rake::Task[:rdoc_dev]
5960
assert Rake::Task[:clobber_rdoc_dev]
6061
assert Rake::Task[:rerdoc_dev]
62+
assert Rake::Task[:"rdoc_dev:coverage"]
6163
assert_equal :rdoc_dev, rd.name
6264
end
6365

@@ -110,11 +112,16 @@ def test_rerdoc_task_description
110112
assert_equal 'Rebuild RDoc HTML files', @t.rerdoc_task_description
111113
end
112114

115+
def test_coverage_task_description
116+
assert_equal 'Print RDoc coverage report', @t.coverage_task_description
117+
end
118+
113119
def test_tasks_creation_with_custom_name_string
114120
rd = RDoc::Task.new("rdoc_dev")
115121
assert Rake::Task[:rdoc_dev]
116122
assert Rake::Task[:clobber_rdoc_dev]
117123
assert Rake::Task[:rerdoc_dev]
124+
assert Rake::Task[:"rdoc_dev:coverage"]
118125
assert_equal "rdoc_dev", rd.name
119126
end
120127

@@ -131,6 +138,7 @@ def test_tasks_creation_with_custom_name_hash
131138
assert Rake::Task[:"rdoc"]
132139
assert Rake::Task[:"rdoc:clean"]
133140
assert Rake::Task[:"rdoc:force"]
141+
assert Rake::Task[:"rdoc:coverage"]
134142
assert_raise(RuntimeError) { Rake::Task[:clobber_rdoc] }
135143
assert_equal options, rd.name
136144
end
@@ -140,6 +148,7 @@ def test_tasks_creation_with_custom_name_hash_will_use_default_if_an_option_isnt
140148
assert Rake::Task[:rdoc]
141149
assert Rake::Task[:"rdoc:clean"]
142150
assert Rake::Task[:rerdoc]
151+
assert Rake::Task[:"rdoc:coverage"]
143152
end
144153

145154
def test_tasks_creation_with_custom_name_hash_raises_exception_if_invalid_option_given

0 commit comments

Comments
 (0)