summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-08-18 13:48:12 +0900
committergit <svn-admin@ruby-lang.org>2021-09-03 19:13:15 +0900
commit76c7388c1f41fb0ae3dacda0d9c02e7562a6655d (patch)
tree8a6100bacc26905c6a3a74098d3d8174d929a667
parent33676a7aa6a9f10c72a811f4b6b6ad08958f2bca (diff)
[ruby/rdoc] Add tests for `--template-stylesheets` option
Also flattens `@options.template_stylesheets` when parsing the command lines. Fixes #205 Fixes #828 too https://github.com/ruby/rdoc/commit/857002a763
-rw-r--r--lib/rdoc/generator/darkfish.rb4
-rw-r--r--lib/rdoc/generator/template/darkfish/_head.rhtml4
-rw-r--r--lib/rdoc/options.rb2
-rw-r--r--test/rdoc/test_rdoc_generator_darkfish.rb14
-rw-r--r--test/rdoc/test_rdoc_options.rb15
5 files changed, 33 insertions, 6 deletions
diff --git a/lib/rdoc/generator/darkfish.rb b/lib/rdoc/generator/darkfish.rb
index b46861d009..60e0265e8c 100644
--- a/lib/rdoc/generator/darkfish.rb
+++ b/lib/rdoc/generator/darkfish.rb
@@ -220,8 +220,8 @@ class RDoc::Generator::Darkfish
install_rdoc_static_file @template_dir + item, "./#{item}", options
end
- @options.template_stylesheets.each do |stylesheet|
- FileUtils.cp stylesheet, '.', options
+ unless @options.template_stylesheets.empty?
+ FileUtils.cp @options.template_stylesheets, '.', **options
end
Dir[(@template_dir + "{js,images}/**/*").to_s].each do |path|
diff --git a/lib/rdoc/generator/template/darkfish/_head.rhtml b/lib/rdoc/generator/template/darkfish/_head.rhtml
index e61fce1b9a..4f331245c3 100644
--- a/lib/rdoc/generator/template/darkfish/_head.rhtml
+++ b/lib/rdoc/generator/template/darkfish/_head.rhtml
@@ -15,8 +15,6 @@
<link href="<%= asset_rel_prefix %>/css/fonts.css" rel="stylesheet">
<link href="<%= asset_rel_prefix %>/css/rdoc.css" rel="stylesheet">
-<%- if @options.template_stylesheets.flatten.any? then -%>
-<%- @options.template_stylesheets.flatten.each do |stylesheet| -%>
+<%- @options.template_stylesheets.each do |stylesheet| -%>
<link href="<%= asset_rel_prefix %>/<%= File.basename stylesheet %>" rel="stylesheet">
-<%- end -%>
<%- end -%>
diff --git a/lib/rdoc/options.rb b/lib/rdoc/options.rb
index 7a45a9c610..792b473b79 100644
--- a/lib/rdoc/options.rb
+++ b/lib/rdoc/options.rb
@@ -971,7 +971,7 @@ Usage: #{opt.program_name} [options] [names...]
opt.on("--template-stylesheets=FILES", PathArray,
"Set (or add to) the list of files to",
"include with the html template.") do |value|
- @template_stylesheets << value
+ @template_stylesheets.concat value
end
opt.separator nil
diff --git a/test/rdoc/test_rdoc_generator_darkfish.rb b/test/rdoc/test_rdoc_generator_darkfish.rb
index f5858bce6e..3de4f8b6d6 100644
--- a/test/rdoc/test_rdoc_generator_darkfish.rb
+++ b/test/rdoc/test_rdoc_generator_darkfish.rb
@@ -220,6 +220,20 @@ class TestRDocGeneratorDarkfish < RDoc::TestCase
assert_includes method_name, '{ |%&lt;&lt;script&gt;alert(&quot;atui&quot;)&lt;/script&gt;&gt;, yield_arg| ... }'
end
+ def test_template_stylesheets
+ css = Tempfile.create(%W'hoge .css', Dir.mktmpdir('tmp', '.'))
+ File.write(css, '')
+ base = File.basename(css)
+ refute_file(base)
+
+ @options.template_stylesheets << css
+
+ @g.generate
+
+ assert_file base
+ assert_include File.read('index.html'), %Q[href="./#{base}"]
+ end
+
##
# Asserts that +filename+ has a link count greater than 1 if hard links to
# @tmpdir are supported.
diff --git a/test/rdoc/test_rdoc_options.rb b/test/rdoc/test_rdoc_options.rb
index 206ddeeb2c..7c264c5e86 100644
--- a/test/rdoc/test_rdoc_options.rb
+++ b/test/rdoc/test_rdoc_options.rb
@@ -632,6 +632,21 @@ rdoc_include:
$LOAD_PATH.replace orig_LOAD_PATH
end
+ def test_parse_template_stylesheets
+ css = nil
+ Dir.mktmpdir do |dir|
+ css = File.join(dir, "hoge.css")
+ File.write(css, "")
+ out, err = capture_output do
+ @options.parse %W[--template-stylesheets #{css}]
+ end
+
+ assert_empty out
+ assert_empty err
+ end
+ assert_include @options.template_stylesheets, css
+ end
+
def test_parse_visibility
@options.parse %w[--visibility=public]
assert_equal :public, @options.visibility