lib/dionysus/redcarpet/includes.rb in dionysus-2.0.0 vs lib/dionysus/redcarpet/includes.rb in dionysus-2.1.0
- old
+ new
@@ -1,9 +1,9 @@
-require 'pathname'
-require 'redcarpet'
-require 'active_support/concern'
-require 'active_support/core_ext/object/blank'
+require "pathname"
+require "active_support/concern"
+require "active_support/core_ext/object/blank"
+require "dionysus/redcarpet"
module Dionysus
module Redcarpet
module Includes
extend ActiveSupport::Concern
@@ -17,11 +17,11 @@
end
def preprocess_with_includes(full_document)
lines = full_document.split($/)
lines.each_with_index do |ln, i|
- if m = ln.match(/\A\s*<<<\s*(\S+)\s*\Z/)
+ if m = ln.match(LINE_DIRECTIVE_REGEXP)
path = Pathname.new(m[1])
if path.file?
newlines = path.readlines
newlines.collect! {|ln| ln.chomp}
newlines.shift while(newlines.first.blank?)
@@ -30,10 +30,16 @@
else
warn "[WARNING] Cannot find path %s to include"%[path.to_s]
end
end
end
- lines.flatten.join("\n")
+ full_document = lines.flatten.join("\n")
+
+ if respond_to? :preprocess_without_includes
+ preprocess_without_includes(full_document)
+ else
+ full_document
+ end
end
end
end
end