From 14592f57f9655be69caedc1250b10045fdd3a1ba Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Fri, 5 Aug 2011 01:59:18 -0500 Subject: [PATCH] Some small efficiencies in the Chunk-handler Also, log Maruku's processing time, out of perverse interest. --- lib/chunks/chunk.rb | 3 +-- lib/chunks/engines.rb | 2 ++ lib/wiki_content.rb | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/chunks/chunk.rb b/lib/chunks/chunk.rb index 0a4b96db..31806e44 100644 --- a/lib/chunks/chunk.rb +++ b/lib/chunks/chunk.rb @@ -45,12 +45,11 @@ module Chunk # Find all the chunks of the given type in content # Each time the pattern is matched, create a new - # chunk for it, and replace the occurance of the chunk + # chunk for it, and replace the occurrence of the chunk # in this content with its mask. def self.apply_to(content) text = content.to_str text.gsub!( self.pattern ) do |match| -# content.replace text new_chunk = self.new($~, content) content.add_chunk(new_chunk) new_chunk.mask diff --git a/lib/chunks/engines.rb b/lib/chunks/engines.rb index 1c72b266..b814d488 100644 --- a/lib/chunks/engines.rb +++ b/lib/chunks/engines.rb @@ -71,9 +71,11 @@ module Engines @content.options[:renderer].s5_theme = my_content.s5_theme my_content.to_s5 else + (t = Time.now; nil) html = Maruku.new(@content.delete("\r").to_utf8, {:math_enabled => true, :math_numbered => ['\\[','\\begin{equation}']}).to_html + (ApplicationController.logger.info("Maruku took " + (Time.now-t).to_s + " seconds."); nil) html.gsub(/\A
\n?(.*?)\n?<\/div>\Z/m, '\1') end end diff --git a/lib/wiki_content.rb b/lib/wiki_content.rb index a757501a..6c5fc7e5 100644 --- a/lib/wiki_content.rb +++ b/lib/wiki_content.rb @@ -8,6 +8,7 @@ require_dependency 'chunks/literal' require 'chunks/nowiki' require 'sanitizer' require 'instiki_stringsupport' +require 'set' # Wiki content is just a string that can process itself with a chain of @@ -53,10 +54,10 @@ module ChunkManager def init_chunk_manager @chunks_by_type = Hash.new Chunk::Abstract::derivatives.each{|chunk_type| - @chunks_by_type[chunk_type] = Array.new + @chunks_by_type[chunk_type] = Set.new } @chunks_by_id = Hash.new - @chunks = [] + @chunks = Set.new @chunk_id = 0 end