diff --git a/lib/sdoc/rdoc_monkey_patches.rb b/lib/sdoc/rdoc_monkey_patches.rb index b57486ec..e2269615 100644 --- a/lib/sdoc/rdoc_monkey_patches.rb +++ b/lib/sdoc/rdoc_monkey_patches.rb @@ -9,6 +9,13 @@ def path end) +RDoc::AnyMethod.prepend(Module.new do + def params + super&.sub(/\A\(\s+/, "(")&.sub(/\s+\)\z/, ")") + end +end) + + RDoc::Markup::ToHtmlCrossref.prepend(Module.new do def cross_reference(name, text = nil, code = true) if text diff --git a/spec/rdoc_monkey_patches_spec.rb b/spec/rdoc_monkey_patches_spec.rb index e112e2e9..6eed23db 100644 --- a/spec/rdoc_monkey_patches_spec.rb +++ b/spec/rdoc_monkey_patches_spec.rb @@ -12,6 +12,23 @@ end end + describe RDoc::AnyMethod do + it "omits extra whitespace in #params" do + rdoc_method = rdoc_top_level_for(<<~RUBY).find_module_named("Foo").find_method("bar", false) + module Foo + def bar( + x, + y, + z + ) + end + end + RUBY + + _(rdoc_method.params).must_equal "(x, y, z)" + end + end + describe RDoc::Markup::ToHtmlCrossref do it "prevents unintentional ref links" do description = rdoc_top_level_for(<<~RUBY).find_module_named("CoolApp").description