diff options
author | Eric Wong <e@80x24.org> | 2017-01-24 23:28:02 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2017-01-24 23:28:23 +0000 |
commit | d8468cf824b235685e55d5b2765165954816c133 (patch) | |
tree | 29020cb21910181b7d4373cb1fbda15baafeadb1 | |
parent | f19299f33badd710ba8ad1c0a085347dd6c8e363 (diff) | |
download | olddoc-d8468cf824b235685e55d5b2765165954816c133.tar.gz |
RDoc will load oldweb.rb regardless of whether it is used or not, so do not apply our monkey patching to reduce HTML generated by RDoc::Markup::ToHtml until we initialize Oldweb. Thanks to Daniel Ferreira for noticing this in [ruby-talk:437390]: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/437390 <CAPL_2g25ir4ZBJo652ao1EYB59ZvFHhpGef1V14QOV2SeVXLeA@mail.gmail.com> This still assumes any Ruby VM instance (currently synonymous with an OS process in Ruby 2.4) will only use one RDoc template in its lifetime and not switch between them. More work will be required to support switching between `oldweb' and other templates within the same VM instance, but that's not a priority for me.
-rw-r--r-- | lib/oldweb.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/oldweb.rb b/lib/oldweb.rb index a5da1cc..95b7171 100644 --- a/lib/oldweb.rb +++ b/lib/oldweb.rb @@ -31,6 +31,8 @@ class Oldweb RDoc::Text::TO_HTML_CHARACTERS[Encoding::UTF_8] = RDoc::Text::TO_HTML_CHARACTERS[Encoding::ASCII] + less_html! + @store = store @options = options @base_dir = Pathname.pwd.expand_path @@ -298,12 +300,13 @@ class Oldweb @res << "</h#{level}>" end end -end -# :stopdoc: -class RDoc::Markup::ToHtml # :nodoc: - remove_method :accept_heading - remove_method :accept_verbatim - include Oldweb::LessHtml + def less_html! # :nodoc: + klass = RDoc::Markup::ToHtml + return if klass.include?(Oldweb::LessHtml) + klass.__send__(:remove_method, :accept_heading) + klass.__send__(:remove_method, :accept_verbatim) + klass.__send__(:include, Oldweb::LessHtml) + end end # :startdoc: |