-
Notifications
You must be signed in to change notification settings - Fork 101
/
redcloth.rb
45 lines (38 loc) · 1.34 KB
/
redcloth.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# If this is a frozen gem in Rails 2.1 and RedCloth 3.x was already
# loaded by Rails' ActionView::Helpers::TextHelper, the user will get
# "redcloth_scan.bundle: Class is not a module (TypeError)"
# This hack is to work around that Rails loading problem. The problem
# appears to be fixed in Edge Rails [51e4106].
Object.send(:remove_const, :RedCloth) if Object.const_defined?(:RedCloth) && RedCloth.is_a?(Class)
require 'rbconfig'
begin
conf = Object.const_get(defined?(RbConfig) ? :RbConfig : :Config)::CONFIG
prefix = conf['arch'] =~ /mswin|mingw/ ? "#{conf['MAJOR']}.#{conf['MINOR']}/" : ''
lib = "#{prefix}redcloth_scan"
require lib
rescue LoadError => e
e.message << %{\nCouldn't load #{lib}\nThe $LOAD_PATH was:\n#{$LOAD_PATH.join("\n")}}
raise e
end
require 'redcloth/version'
require 'redcloth/textile_doc'
require 'redcloth/formatters/base'
require 'redcloth/formatters/html'
require 'redcloth/formatters/latex'
module RedCloth
# A convenience method for creating a new TextileDoc. See
# RedCloth::TextileDoc.
def self.new( *args, &block )
RedCloth::TextileDoc.new( *args, &block )
end
# Include extension modules (if any) in TextileDoc.
def self.include(*args)
RedCloth::TextileDoc.send(:include, *args)
end
end
begin
require 'erb'
require 'redcloth/erb_extension'
include ERB::Util
rescue LoadError
end