From 4942b2947bcc8a11bc589efe904fd913812ffa5d Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Sun, 12 Oct 2014 14:31:49 -0700 Subject: [PATCH] Only compile the Converter#matches regexp when asked for --- lib/jekyll/converters/markdown.rb | 15 ++++++++------- lib/jekyll/converters/textile.rb | 11 ++++++----- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/jekyll/converters/markdown.rb b/lib/jekyll/converters/markdown.rb index da37d249..0dcc90a8 100644 --- a/lib/jekyll/converters/markdown.rb +++ b/lib/jekyll/converters/markdown.rb @@ -8,7 +8,6 @@ module Jekyll def setup return if @setup - @regexp = build_extname_regexp @parser = case @config['markdown'].downcase when 'redcarpet' then RedcarpetParser.new(@config) @@ -28,11 +27,6 @@ module Jekyll @setup = true end - def build_extname_regexp - rgx = '^\.(' + @config['markdown_ext'].gsub(',','|') +')$' - Regexp.new(rgx, Regexp::IGNORECASE) - end - def valid_processors %w[ maruku @@ -52,8 +46,15 @@ module Jekyll ].map(&:to_sym) end + def extname_matches_regexp + @extname_matches_regexp ||= Regexp.new( + '(' + @config['markdown_ext'].gsub(',','|') +')$', + Regexp::IGNORECASE + ) + end + def matches(ext) - ext =~ @regexp + ext =~ extname_matches_regexp end def output_ext(ext) diff --git a/lib/jekyll/converters/textile.rb b/lib/jekyll/converters/textile.rb index 8c366908..c8137a3a 100644 --- a/lib/jekyll/converters/textile.rb +++ b/lib/jekyll/converters/textile.rb @@ -9,7 +9,6 @@ module Jekyll def setup return if @setup require 'redcloth' - @regexp = build_extname_regexp @setup = true rescue LoadError STDERR.puts 'You are missing a library required for Textile. Please run:' @@ -17,13 +16,15 @@ module Jekyll raise Errors::FatalException.new("Missing dependency: RedCloth") end - def build_extname_regexp - rgx = '(' + @config['textile_ext'].gsub(',','|') +')$' - Regexp.new(rgx, Regexp::IGNORECASE) + def extname_matches_regexp + @extname_matches_regexp ||= Regexp.new( + '(' + @config['textile_ext'].gsub(',','|') +')$', + Regexp::IGNORECASE + ) end def matches(ext) - ext =~ @regexp + ext =~ extname_matches_regexp end def output_ext(ext)