diff --git a/init.rb b/init.rb index ad33507..cd6c072 100644 --- a/init.rb +++ b/init.rb @@ -9,7 +9,13 @@ end # Patches -ActionDispatch::Callbacks.to_prepare do +if Rails::VERSION::MAJOR >= 5 + reload_object = ActiveSupport::Reloader +else + reload_object = ActionDispatch::Callbacks +end + +reload_object.to_prepare do # .. to uv gem itself require_dependency 'uv_extension' require_dependency 'uv_syntax_highlighting' diff --git a/lib/uv_syntax_highlighting.rb b/lib/uv_syntax_highlighting.rb index 0297681..78c5305 100644 --- a/lib/uv_syntax_highlighting.rb +++ b/lib/uv_syntax_highlighting.rb @@ -9,7 +9,7 @@ class << self # Should not return line numbers nor outer pre tag def highlight_by_filename(text, filename) language = Uv.syntax_for_text(text, filename) - language ? highlight_by_language(text, language) : ERB::Util.h(text) + language ? highlight_by_language(text.gsub(/x%x%/m, '&'), language) : ERB::Util.h(text) end # Highlights +text+ using +language+ syntax @@ -17,7 +17,7 @@ def highlight_by_filename(text, filename) def highlight_by_language(text, language) syntax = Uv.unalias(language) if syntax then - xhtml = Uv.parse(text, "xhtml", syntax, false, user_theme) + xhtml = Uv.parse(text.gsub(/x%x%/m, '&'), "xhtml", syntax, false, user_theme) xhtml.gsub /^
(.*)<\/pre>$/m, '\1'
       else
         Rails.logger.warn "redmine_ultraviolet: unknown syntax #{language}"