]> git.wincent.com - wikitext.git/commitdiff
Provide access to shared wikitext parser for customization
authorWincent Colaiuta <win@wincent.com>
Tue, 6 Jan 2009 00:08:44 +0000 (01:08 +0100)
committerWincent Colaiuta <win@wincent.com>
Tue, 6 Jan 2009 00:08:44 +0000 (01:08 +0100)
Expose the shared parser instance so that calling applications can
customize its behaviour.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
lib/wikitext/string.rb

index 9046087d02f8079fda8ecafff4285f8fee1e34c8..afc33da4ae4aeadab41d04a7e61dc5d92b4dadfc 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2008 Wincent Colaiuta
+# Copyright 2008-2009 Wincent Colaiuta
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
 require 'wikitext'
 
 class String
+  def self.shared_wikitext_parser
+    @@shared_wikitext_parser ||= Wikitext::Parser.new(:space_to_underscore => true)
+  end
+
   def to_wikitext
     @@shared_wikitext_parser ||= Wikitext::Parser.new(:space_to_underscore => true)
     @@shared_wikitext_parser.parse wikitext_preprocess
@@ -25,6 +29,7 @@ private
 
   # for now do this in pure Ruby
   # if speed later becomes a concern can whip up a Ragel C extension to do it
+  # TODO: make this customizable (accept a lambda that performs preprocessing)
   def wikitext_preprocess
     gsub /\b(bug|issue|request|ticket) #(\d+)/i, '[[issues/\2|\1 #\2]]'
   end