malt 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.ruby +156 -0
- data/Assembly +28 -0
- data/COPYING.rdoc +33 -0
- data/Gemfile +10 -0
- data/HISTORY.rdoc +102 -0
- data/README.rdoc +16 -10
- data/Reapfile +4 -0
- data/lib/malt.rb +36 -8
- data/lib/malt.yml +156 -0
- data/lib/malt/conversions.rb +42 -0
- data/lib/malt/core_ext.rb +81 -3
- data/lib/malt/engines/abstract.rb +259 -50
- data/lib/malt/engines/bluecloth.rb +19 -9
- data/lib/malt/engines/builder.rb +93 -32
- data/lib/malt/engines/coffee.rb +46 -0
- data/lib/malt/engines/creole.rb +60 -0
- data/lib/malt/engines/erb.rb +69 -44
- data/lib/malt/engines/erector.rb +61 -30
- data/lib/malt/engines/erubis.rb +41 -31
- data/lib/malt/engines/haml.rb +13 -37
- data/lib/malt/engines/kramdown.rb +40 -15
- data/lib/malt/engines/less.rb +15 -14
- data/lib/malt/engines/liquid.rb +24 -14
- data/lib/malt/engines/markaby.rb +44 -22
- data/lib/malt/engines/maruku.rb +89 -0
- data/lib/malt/engines/mustache.rb +20 -14
- data/lib/malt/engines/nokogiri.rb +89 -0
- data/lib/malt/engines/radius.rb +72 -34
- data/lib/malt/engines/ragtag.rb +26 -18
- data/lib/malt/engines/rdiscount.rb +18 -11
- data/lib/malt/engines/rdoc.rb +21 -15
- data/lib/malt/engines/redcarpet.rb +137 -0
- data/lib/malt/engines/redcloth.rb +15 -7
- data/lib/malt/engines/ruby.rb +13 -12
- data/lib/malt/engines/sass.rb +30 -17
- data/lib/malt/engines/string.rb +36 -0
- data/lib/malt/engines/tenjin.rb +70 -27
- data/lib/malt/engines/wikicloth.rb +48 -0
- data/lib/malt/formats/abstract.rb +90 -29
- data/lib/malt/formats/abstract_template.rb +10 -8
- data/lib/malt/formats/builder.rb +39 -13
- data/lib/malt/formats/coffee.rb +54 -0
- data/lib/malt/formats/css.rb +3 -3
- data/lib/malt/formats/erb.rb +31 -66
- data/lib/malt/formats/haml.rb +8 -8
- data/lib/malt/formats/html.rb +1 -7
- data/lib/malt/formats/javascript.rb +27 -0
- data/lib/malt/formats/latex.rb +1 -1
- data/lib/malt/formats/less.rb +13 -11
- data/lib/malt/formats/liquid.rb +7 -7
- data/lib/malt/formats/markdown.rb +43 -44
- data/lib/malt/formats/mediawiki.rb +70 -0
- data/lib/malt/formats/mustache.rb +5 -5
- data/lib/malt/formats/pdf.rb +1 -7
- data/lib/malt/formats/radius.rb +5 -4
- data/lib/malt/formats/ragtag.rb +14 -13
- data/lib/malt/formats/rbhtml.rb +28 -20
- data/lib/malt/formats/rdoc.rb +5 -4
- data/lib/malt/formats/rhtml.rb +19 -43
- data/lib/malt/formats/ruby.rb +11 -45
- data/lib/malt/formats/sass.rb +16 -24
- data/lib/malt/formats/scss.rb +13 -30
- data/lib/malt/formats/string.rb +61 -0
- data/lib/malt/formats/tenjin.rb +4 -4
- data/lib/malt/formats/text.rb +1 -1
- data/lib/malt/formats/textile.rb +7 -19
- data/lib/malt/kernel.rb +1 -2
- data/lib/malt/machine.rb +83 -13
- data/lib/malt/tilted.rb +216 -0
- data/lib/malt/version.rb +21 -0
- data/test/helper.rb +15 -0
- data/test/unit/engines/case_engine_bluecloth.rb +40 -0
- data/test/unit/engines/case_engine_builder.rb +30 -0
- data/test/unit/engines/case_engine_coffee.rb +30 -0
- data/test/unit/engines/case_engine_creole.rb +35 -0
- data/test/unit/engines/case_engine_erb.rb +28 -0
- data/test/unit/engines/case_engine_erector.rb +36 -0
- data/test/unit/engines/case_engine_erubis.rb +28 -0
- data/test/unit/engines/case_engine_haml.rb +30 -0
- data/test/unit/engines/case_engine_kramdown.rb +30 -0
- data/test/unit/engines/case_engine_less.rb +40 -0
- data/test/unit/engines/case_engine_liquid.rb +28 -0
- data/test/unit/engines/case_engine_markaby.rb +20 -0
- data/test/unit/engines/case_engine_maruku.rb +30 -0
- data/test/unit/engines/case_engine_mustache.rb +28 -0
- data/test/unit/engines/case_engine_nokogiri.rb +30 -0
- data/test/unit/engines/case_engine_radius.rb +30 -0
- data/test/unit/engines/case_engine_ragtag.rb +40 -0
- data/test/unit/engines/case_engine_rdiscount.rb +30 -0
- data/test/unit/engines/case_engine_rdoc.rb +31 -0
- data/test/unit/engines/case_engine_redcarpet.rb +30 -0
- data/test/unit/engines/case_engine_redcloth.rb +31 -0
- data/test/unit/engines/case_engine_ruby.rb +28 -0
- data/test/unit/engines/case_engine_sass.rb +36 -0
- data/test/unit/engines/case_engine_string.rb +28 -0
- data/test/unit/engines/case_engine_tenjin.rb +28 -0
- data/test/unit/engines/case_engine_wikicloth.rb +25 -0
- data/test/unit/machine.rb +27 -0
- data/test/unit/malt.rb +12 -0
- metadata +364 -266
- data/History.rdoc +0 -64
- data/License.txt +0 -205
- data/Syckfile +0 -80
- data/features/consistent_rendering.feature +0 -36
- data/features/samples/sample.erb +0 -1
- data/features/samples/sample.erubis +0 -1
- data/features/samples/sample.liquid +0 -1
- data/features/samples/sample.mustache +0 -1
- data/features/samples/sample.radius +0 -1
- data/features/step_definitions/engine_steps.rb +0 -49
- data/features/support/loadpath.rb +0 -1
- data/features/support/sample_class.rb +0 -8
- data/lib/malt/formats/erector.rb +0 -53
- data/lib/malt/formats/markaby.rb +0 -53
- data/lib/malt/meta/data.rb +0 -26
- data/lib/malt/meta/package +0 -21
- data/lib/malt/meta/profile +0 -21
- data/meta/data.rb +0 -26
- data/meta/package +0 -21
- data/meta/profile +0 -21
- data/qed/01_overview.rdoc +0 -8
- data/qed/02_formats.rdoc +0 -39
- data/qed/03_formats/01_overview.rdoc +0 -7
- data/qed/03_formats/02_rdoc.rdoc +0 -83
- data/qed/03_formats/03_textile.rdoc +0 -48
- data/qed/03_formats/04_markdown.rdoc +0 -66
- data/qed/03_formats/05_erb.rdoc +0 -65
- data/qed/03_formats/06_liquid.rdoc +0 -54
- data/qed/03_formats/07_haml.rdoc +0 -44
- data/qed/03_formats/08_ragtag.rdoc +0 -19
- data/qed/03_formats/09_radius.rdoc +0 -43
- data/qed/03_formats/11_tenjin.rdoc +0 -47
- data/qed/03_formats/12_rbhtml.rdoc +0 -55
- data/qed/03_formats/13_sass.rdoc +0 -55
- data/qed/03_formats/14_scss.rdoc +0 -58
- data/qed/03_formats/15_less.rdoc +0 -46
- data/qed/03_formats/16_ruby.rdoc +0 -48
- data/qed/03_formats/17_markaby.rdoc +0 -50
- data/qed/03_formats/18_builder.rb +0 -50
- data/qed/03_formats/19_erector.rb +0 -50
- data/qed/03_formats/20_mustache.rdoc +0 -54
- data/qed/05_machine/01_limited_formats.rdoc +0 -29
- data/qed/05_machine/02_prioritized_engines.rdoc +0 -34
- data/qed/applique/malt.rb +0 -13
- data/qed/samples/data.yml +0 -4
- data/qed/samples/output-erb.txt +0 -1
- data/qed/samples/output-liquid.txt +0 -1
- data/qed/samples/output-mustache.txt +0 -1
- data/qed/samples/output-radius.txt +0 -1
- data/qed/samples/sample.erb +0 -1
- data/qed/samples/sample.liquid +0 -1
- data/qed/samples/sample.markdown +0 -308
- data/qed/samples/sample.mustache +0 -1
- data/qed/samples/sample.radius +0 -1
- data/qed/samples/sample.rdoc +0 -8
data/lib/malt/tilted.rb
ADDED
@@ -0,0 +1,216 @@
|
|
1
|
+
require 'malt' unless defined?(Malt)
|
2
|
+
|
3
|
+
module Malt
|
4
|
+
|
5
|
+
# Base class for the Tilt-like template classes.
|
6
|
+
class Malted
|
7
|
+
#
|
8
|
+
def self.engine_index
|
9
|
+
@@engine_index ||= {}
|
10
|
+
end
|
11
|
+
|
12
|
+
#
|
13
|
+
def self.malt_engine(engine_class=nil)
|
14
|
+
if engine_class
|
15
|
+
@malt_engine = engine_class
|
16
|
+
engine_index[@malt_engine] = self
|
17
|
+
end
|
18
|
+
@malt_engine
|
19
|
+
end
|
20
|
+
|
21
|
+
#
|
22
|
+
def malt_engine
|
23
|
+
self.class.malt_engine.new(@options)
|
24
|
+
end
|
25
|
+
|
26
|
+
#
|
27
|
+
def initialize(file, options={})
|
28
|
+
@file = file
|
29
|
+
@options = options || {}
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
def render(*data, &yields)
|
34
|
+
text = File.read(@file)
|
35
|
+
malt_engine.render(:text=>text, :file=>@file, :data=>data, &yields)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Tilt compatability layer. This get included into the toplevel.
|
40
|
+
module Tilted
|
41
|
+
|
42
|
+
#
|
43
|
+
module Tilt
|
44
|
+
extend Malt::Kernel
|
45
|
+
|
46
|
+
#
|
47
|
+
def self.new(file, options={})
|
48
|
+
ext = ext_to_type(File.extname(file))
|
49
|
+
malt_engine = Malt::Engine.defaults[ext] || Malt::Engine.registry[ext].first
|
50
|
+
tilt_engine = Malted.engine_index[malt_engine]
|
51
|
+
tilt_engine.new(file, options)
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
class StringTemplate < Malted
|
56
|
+
malt_engine Malt::Engine::String
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
# E R U B Y
|
61
|
+
|
62
|
+
#
|
63
|
+
class ERBTemplate < Malted
|
64
|
+
malt_engine Malt::Engine::Erb
|
65
|
+
end
|
66
|
+
|
67
|
+
#
|
68
|
+
class ErubisTemplate < Malted
|
69
|
+
malt_engine Malt::Engine::Erubis
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
# C U R L E Y B R A C K E T S
|
74
|
+
|
75
|
+
#
|
76
|
+
class LiquidTemplate < Malted
|
77
|
+
malt_engine Malt::Engine::Liquid
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
# H T M L
|
82
|
+
|
83
|
+
#
|
84
|
+
class RadiusTemplate < Malted
|
85
|
+
malt_engine Malt::Engine::Radius
|
86
|
+
end
|
87
|
+
|
88
|
+
#
|
89
|
+
class HAMLTemplate < Malted
|
90
|
+
malt_engine Malt::Engine::Haml
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
# B U I L D E R
|
95
|
+
|
96
|
+
#
|
97
|
+
class BuilderTemplate < Malted
|
98
|
+
malt_engine Malt::Engine::Builder
|
99
|
+
end
|
100
|
+
|
101
|
+
#
|
102
|
+
class MarkabyTemplate < Malted
|
103
|
+
malt_engine Malt::Engine::Markaby
|
104
|
+
end
|
105
|
+
|
106
|
+
#
|
107
|
+
class NokogiriTemplate < Malted
|
108
|
+
malt_engine Malt::Engine::Nokogiri
|
109
|
+
end
|
110
|
+
|
111
|
+
#
|
112
|
+
class ErectorTemplate < Malted
|
113
|
+
malt_engine Malt::Engine::Erector
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
# R D O C
|
118
|
+
|
119
|
+
#
|
120
|
+
class RDocTemplate < Malted
|
121
|
+
malt_engine Malt::Engine::RDoc
|
122
|
+
end
|
123
|
+
|
124
|
+
|
125
|
+
# T E X T I L E
|
126
|
+
|
127
|
+
#
|
128
|
+
class RedClothTemplate < Malted
|
129
|
+
malt_engine Malt::Engine::RedCloth
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
# M A R K D O W N
|
134
|
+
|
135
|
+
#
|
136
|
+
class RDiscountTemplate < Malted
|
137
|
+
malt_engine Malt::Engine::RDiscount
|
138
|
+
end
|
139
|
+
|
140
|
+
#
|
141
|
+
class BlueClothTemplate < Malted
|
142
|
+
malt_engine Malt::Engine::BlueCloth
|
143
|
+
end
|
144
|
+
|
145
|
+
#
|
146
|
+
class KramdownTemplate < Malted
|
147
|
+
malt_engine Malt::Engine::Kramdown
|
148
|
+
end
|
149
|
+
|
150
|
+
#
|
151
|
+
class RedcarpetTemplate < Malted
|
152
|
+
malt_engine Malt::Engine::Redcarpet
|
153
|
+
end
|
154
|
+
|
155
|
+
#
|
156
|
+
class MarukuTemplate < Malted
|
157
|
+
malt_engine Malt::Engine::Maruku
|
158
|
+
end
|
159
|
+
|
160
|
+
|
161
|
+
# C S S
|
162
|
+
|
163
|
+
#
|
164
|
+
class SassTemplate < Malted
|
165
|
+
malt_engine Malt::Engine::Sass
|
166
|
+
#
|
167
|
+
def malt_engine
|
168
|
+
options = @options.merge(:type=>:sass)
|
169
|
+
self.class.malt_engine.new(options)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
#
|
174
|
+
class ScssTemplate < Malted
|
175
|
+
malt_engine Malt::Engine::Sass
|
176
|
+
#
|
177
|
+
def malt_engine
|
178
|
+
options = @options.merge(:type=>:scss)
|
179
|
+
self.class.malt_engine.new(options)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
class LessTemplate < Malted
|
184
|
+
malt_engine Malt::Engine::Less
|
185
|
+
end
|
186
|
+
|
187
|
+
|
188
|
+
# S O U R C E C O D E
|
189
|
+
|
190
|
+
#
|
191
|
+
class CoffeeScriptTemplate < Malted
|
192
|
+
malt_engine Malt::Engine::Coffee
|
193
|
+
end
|
194
|
+
|
195
|
+
|
196
|
+
# W I K I
|
197
|
+
|
198
|
+
#
|
199
|
+
class CreoleTemplate < Malted
|
200
|
+
malt_engine Malt::Engine::Creole
|
201
|
+
end
|
202
|
+
|
203
|
+
#
|
204
|
+
class WikiClothTemplate < Malted
|
205
|
+
malt_engine Malt::Engine::WikiCloth
|
206
|
+
end
|
207
|
+
|
208
|
+
end
|
209
|
+
|
210
|
+
end
|
211
|
+
|
212
|
+
end
|
213
|
+
|
214
|
+
# Include in toplevel space.
|
215
|
+
include Malt::Tilted
|
216
|
+
|
data/lib/malt/version.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Malt
|
2
|
+
|
3
|
+
# Access to project metadata.
|
4
|
+
def self.metadata
|
5
|
+
@metadata ||= (
|
6
|
+
require 'yaml'
|
7
|
+
YAML.load(File.new(File.dirname(__FILE__) + '/../malt.yml'))
|
8
|
+
)
|
9
|
+
end
|
10
|
+
|
11
|
+
# Access to project metadata via constants.
|
12
|
+
def self.const_missing(name)
|
13
|
+
key = name.to_s.downcase
|
14
|
+
metadata[key] || super(name)
|
15
|
+
end
|
16
|
+
|
17
|
+
# TODO: Here until bug in 1.8 is fixed.
|
18
|
+
VERSION = metadata['version']
|
19
|
+
|
20
|
+
end
|
21
|
+
|
data/test/helper.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
testcase Malt::Engine::BlueCloth do
|
2
|
+
|
3
|
+
method :render do
|
4
|
+
|
5
|
+
test "convert BlueCloth text" do
|
6
|
+
e = Malt::Engine::BlueCloth.new(:text=>"# Testing")
|
7
|
+
h = e.render
|
8
|
+
h.assert.index "<h1>Testing</h1>"
|
9
|
+
end
|
10
|
+
|
11
|
+
test "raises NotImplementedError if converstion format not supported" do
|
12
|
+
e = Malt::Engine::BlueCloth.new
|
13
|
+
expect NotImplementedError do
|
14
|
+
e.render(:to=>:DNE, :text=>"# Testing")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
method :prepare_engine do
|
21
|
+
|
22
|
+
test "returns a ::BlueCloth instance" do
|
23
|
+
e = Malt::Engine::BlueCloth.new
|
24
|
+
r = e.prepare_engine(:text=>"# Testing")
|
25
|
+
r.assert.is_a? ::BlueCloth
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
method :create_engine do
|
31
|
+
|
32
|
+
test "returns a ::BlueCloth instance" do
|
33
|
+
e = Malt::Engine::BlueCloth.new
|
34
|
+
r = e.create_engine(:text=>"# Testing")
|
35
|
+
r.assert.is_a? ::BlueCloth
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
testcase Malt::Engine::Builder do
|
2
|
+
|
3
|
+
method :render do
|
4
|
+
|
5
|
+
test "convert Builder DSL to XML by default" do
|
6
|
+
e = Malt::Engine::Builder.new(:text=>%[h1 "Testing"])
|
7
|
+
h = e.render
|
8
|
+
h.assert.index "<h1>Testing</h1>"
|
9
|
+
end
|
10
|
+
|
11
|
+
test "raises NotImplementedError if converstion format not supported" do
|
12
|
+
e = Malt::Engine::Builder.new
|
13
|
+
expect NotImplementedError do
|
14
|
+
e.render(:to=>:DNE, :text=>%[h1 "Testing"])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
method :create_engine do
|
21
|
+
|
22
|
+
test "returns an ::Builder::XmlMarkup instance" do
|
23
|
+
e = Malt::Engine::Builder.new
|
24
|
+
r = e.create_engine(:text=>%[h1 "Testing"])
|
25
|
+
r.assert.is_a? ::Builder::XmlMarkup
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
testcase Malt::Engine::Coffee do
|
2
|
+
|
3
|
+
method :render do
|
4
|
+
|
5
|
+
test "convert Coffee text" do
|
6
|
+
e = Malt::Engine::Coffee.new(:text=>"square = (x) -> x * x")
|
7
|
+
h = e.render
|
8
|
+
h.assert.index "square = function(x) {\n return x * x;\n };"
|
9
|
+
end
|
10
|
+
|
11
|
+
test "raises NotImplementedError if converstion format not supported" do
|
12
|
+
e = Malt::Engine::Coffee.new
|
13
|
+
expect NotImplementedError do
|
14
|
+
e.render(:to=>:DNE, :text=>"square = (x) -> x * x")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
#method :intermediate do
|
21
|
+
#
|
22
|
+
# test "returns an ::Coffee instance" do
|
23
|
+
# e = Malt::Engine::Coffee.new
|
24
|
+
# r = e.intermediate(:text=>"square = (x) -> x * x")
|
25
|
+
# r.assert.is_a? ::Coffee
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
#end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
testcase Malt::Engine::Creole do
|
2
|
+
|
3
|
+
method :render do
|
4
|
+
|
5
|
+
test "convert media wiki text to HTML by default" do
|
6
|
+
e = Malt::Engine::Creole.new(:text=>"== Testing ==")
|
7
|
+
h = e.render
|
8
|
+
h.assert.index "<h2>" # so complicated that we're lucky to find it ;)
|
9
|
+
h.assert.index "Testing"
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
method :prepare_engine do
|
15
|
+
|
16
|
+
test "returns a Creole instance" do
|
17
|
+
e = Malt::Engine::Creole.new
|
18
|
+
r = e.prepare_engine(:text=>"== Testing ==")
|
19
|
+
r.assert.is_a? ::Creole::Parser
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
method :create_engine do
|
25
|
+
|
26
|
+
test "returns a Creole instance" do
|
27
|
+
e = Malt::Engine::Creole.new
|
28
|
+
r = e.create_engine(:text=>"== Testing ==")
|
29
|
+
r.assert.is_a? ::Creole::Parser
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
testcase Malt::Engine::Erb do
|
2
|
+
|
3
|
+
method :render do
|
4
|
+
|
5
|
+
test "convert ERB text" do
|
6
|
+
e = Malt::Engine::Erb.new(:text=>"<h1><%= title %></h1>")
|
7
|
+
h = e.render(:locals=>{:title=>'Testing'})
|
8
|
+
h.assert.index "<h1>Testing</h1>"
|
9
|
+
end
|
10
|
+
|
11
|
+
test "Erb is converstion format agnostic" do
|
12
|
+
e = Malt::Engine::Erb.new
|
13
|
+
e.render(:to=>:DNE, :text=>"<h1>Testing</h1>")
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
method :prepare_engine do
|
19
|
+
|
20
|
+
test "returns an ERB instance" do
|
21
|
+
e = Malt::Engine::Erb.new
|
22
|
+
r = e.prepare_engine(:text=>"=<h1><%= title %></h1>")
|
23
|
+
r.assert.is_a? ::ERB
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
testcase Malt::Engine::Erector do
|
2
|
+
|
3
|
+
method :render do
|
4
|
+
|
5
|
+
test "convert Erector template" do
|
6
|
+
e = Malt::Engine::Erector.new(:text=>"h1 'Testing'")
|
7
|
+
h = e.render
|
8
|
+
h.assert.index "<h1>Testing</h1>"
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
# NOTE: truth is these will probably become private so there isn't
|
14
|
+
# really necessary to test them directly.
|
15
|
+
|
16
|
+
method :prepare_engine do
|
17
|
+
|
18
|
+
test "returns an instance of a subclass of Erector::Widget" do
|
19
|
+
e = Malt::Engine::Erector.new
|
20
|
+
r = e.prepare_engine(:text=>"h1 'Testing'")
|
21
|
+
assert r.is_a?(::Erector::Widget) # do it this way b/c of odd warning
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
method :create_engine do
|
27
|
+
|
28
|
+
test "returns a subclass of Erector::Widget" do
|
29
|
+
e = Malt::Engine::Erector.new
|
30
|
+
r = e.create_engine(:text=>"h1 'Testing'")
|
31
|
+
r.assert < ::Erector::Widget
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|