html2haml 1.0.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +10 -0
- data/.travis.yml +14 -0
- data/Gemfile +4 -0
- data/MIT-LICENSE +18 -0
- data/README.md +40 -0
- data/Rakefile +25 -0
- data/bin/html2haml +7 -0
- data/html2haml.gemspec +25 -0
- data/lib/html2haml.rb +8 -0
- data/lib/html2haml/exec.rb +260 -0
- data/lib/html2haml/html.rb +423 -0
- data/lib/html2haml/html/erb.rb +153 -0
- data/lib/html2haml/version.rb +3 -0
- data/test/erb_test.rb +477 -0
- data/test/html2haml_test.rb +323 -0
- data/test/test_helper.rb +22 -0
- metadata +180 -0
@@ -0,0 +1,323 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Html2HamlTest < MiniTest::Unit::TestCase
|
4
|
+
def test_empty_render_should_remain_empty
|
5
|
+
assert_equal '', render('')
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_doctype
|
9
|
+
assert_equal '!!!', render("<!DOCTYPE html>")
|
10
|
+
assert_equal '!!! 1.1', render('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">')
|
11
|
+
assert_equal '!!! Strict', render('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">')
|
12
|
+
assert_equal '!!! Frameset', render('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">')
|
13
|
+
assert_equal '!!! Mobile 1.2', render('<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">')
|
14
|
+
assert_equal '!!! Basic 1.1', render('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">')
|
15
|
+
assert_equal '!!!', render('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">')
|
16
|
+
assert_equal '!!! Strict', render('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">')
|
17
|
+
assert_equal '!!! Frameset', render('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">')
|
18
|
+
assert_equal '!!!', render('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">')
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_id_and_class_should_be_removed_from_hash
|
22
|
+
assert_equal '%span#foo.bar', render('<span id="foo" class="bar"> </span>')
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_no_tag_name_for_div_if_class_or_id_is_present
|
26
|
+
assert_equal '#foo', render('<div id="foo"> </div>')
|
27
|
+
assert_equal '.foo', render('<div class="foo"> </div>')
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_multiple_class_names
|
31
|
+
assert_equal '.foo.bar.baz', render('<div class=" foo bar baz "> </div>')
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_should_have_pretty_attributes
|
35
|
+
assert_equal('%input{:name => "login", :type => "text"}/',
|
36
|
+
render('<input type="text" name="login" />'))
|
37
|
+
assert_equal('%meta{:content => "text/html", "http-equiv" => "Content-Type"}/',
|
38
|
+
render('<meta http-equiv="Content-Type" content="text/html" />'))
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_should_have_html_style_attributes
|
42
|
+
assert_equal('%input(name="login" type="text")/',
|
43
|
+
render('<input type="text" name="login" />', :html_style_attributes => true))
|
44
|
+
assert_equal('%meta(content="text/html" http-equiv="Content-Type")/',
|
45
|
+
render('<meta http-equiv="Content-Type" content="text/html" />', :html_style_attributes => true))
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_class_with_dot_and_hash
|
49
|
+
assert_equal('%div{:class => "foo.bar"}', render("<div class='foo.bar'></div>"))
|
50
|
+
assert_equal('%div{:class => "foo#bar"}', render("<div class='foo#bar'></div>"))
|
51
|
+
assert_equal('.foo.bar{:class => "foo#bar foo.bar"}', render("<div class='foo foo#bar bar foo.bar'></div>"))
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_id_with_dot_and_hash
|
55
|
+
assert_equal('%div{:id => "foo.bar"}', render("<div id='foo.bar'></div>"))
|
56
|
+
assert_equal('%div{:id => "foo#bar"}', render("<div id='foo#bar'></div>"))
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_interpolation
|
60
|
+
assert_equal('Foo \#{bar} baz', render('Foo #{bar} baz'))
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_interpolation_in_attrs
|
64
|
+
assert_equal('%p{:foo => "\#{bar} baz"}', render('<p foo="#{bar} baz"></p>'))
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_cdata
|
68
|
+
assert_equal(<<HAML.strip, render(<<HTML))
|
69
|
+
%p
|
70
|
+
:cdata
|
71
|
+
<a foo="bar" baz="bang">
|
72
|
+
<div id="foo">flop</div>
|
73
|
+
</a>
|
74
|
+
HAML
|
75
|
+
<p><![CDATA[
|
76
|
+
<a foo="bar" baz="bang">
|
77
|
+
<div id="foo">flop</div>
|
78
|
+
</a>
|
79
|
+
]]></p>
|
80
|
+
HTML
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_self_closing_tag
|
84
|
+
assert_equal("%foo/", render("<foo />"))
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_inline_text
|
88
|
+
assert_equal("%p foo", render("<p>foo</p>"))
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_inline_comment
|
92
|
+
assert_equal("/ foo", render("<!-- foo -->"))
|
93
|
+
assert_equal(<<HAML.strip, render(<<HTML))
|
94
|
+
/ foo
|
95
|
+
%p bar
|
96
|
+
HAML
|
97
|
+
<!-- foo -->
|
98
|
+
<p>bar</p>
|
99
|
+
HTML
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_non_inline_comment
|
103
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
104
|
+
/
|
105
|
+
Foo
|
106
|
+
Bar
|
107
|
+
HAML
|
108
|
+
<!-- Foo
|
109
|
+
Bar -->
|
110
|
+
HTML
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_non_inline_text
|
114
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
115
|
+
%p
|
116
|
+
foo
|
117
|
+
HAML
|
118
|
+
<p>
|
119
|
+
foo
|
120
|
+
</p>
|
121
|
+
HTML
|
122
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
123
|
+
%p
|
124
|
+
foo
|
125
|
+
HAML
|
126
|
+
<p>
|
127
|
+
foo</p>
|
128
|
+
HTML
|
129
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
130
|
+
%p
|
131
|
+
foo
|
132
|
+
HAML
|
133
|
+
<p>foo
|
134
|
+
</p>
|
135
|
+
HTML
|
136
|
+
end
|
137
|
+
|
138
|
+
def test_script_tag
|
139
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
140
|
+
:javascript
|
141
|
+
function foo() {
|
142
|
+
return "12" & "13";
|
143
|
+
}
|
144
|
+
HAML
|
145
|
+
<script type="text/javascript">
|
146
|
+
function foo() {
|
147
|
+
return "12" & "13";
|
148
|
+
}
|
149
|
+
</script>
|
150
|
+
HTML
|
151
|
+
end
|
152
|
+
|
153
|
+
def test_script_tag_with_cdata
|
154
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
155
|
+
:javascript
|
156
|
+
function foo() {
|
157
|
+
return "&";
|
158
|
+
}
|
159
|
+
HAML
|
160
|
+
<script type="text/javascript">
|
161
|
+
<![CDATA[
|
162
|
+
function foo() {
|
163
|
+
return "&";
|
164
|
+
}
|
165
|
+
]]>
|
166
|
+
</script>
|
167
|
+
HTML
|
168
|
+
end
|
169
|
+
|
170
|
+
def test_pre
|
171
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
172
|
+
%pre
|
173
|
+
:preserve
|
174
|
+
foo
|
175
|
+
bar
|
176
|
+
baz
|
177
|
+
HAML
|
178
|
+
<pre>foo
|
179
|
+
bar
|
180
|
+
baz</pre>
|
181
|
+
HTML
|
182
|
+
end
|
183
|
+
|
184
|
+
def test_pre_code
|
185
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
186
|
+
%pre
|
187
|
+
%code
|
188
|
+
:preserve
|
189
|
+
foo
|
190
|
+
bar
|
191
|
+
baz
|
192
|
+
HAML
|
193
|
+
<pre><code>foo
|
194
|
+
bar
|
195
|
+
baz</code></pre>
|
196
|
+
HTML
|
197
|
+
end
|
198
|
+
|
199
|
+
def test_code_without_pre
|
200
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
201
|
+
%code
|
202
|
+
foo
|
203
|
+
bar
|
204
|
+
baz
|
205
|
+
HAML
|
206
|
+
<code>foo
|
207
|
+
bar
|
208
|
+
baz</code>
|
209
|
+
HTML
|
210
|
+
end
|
211
|
+
|
212
|
+
def test_conditional_comment
|
213
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
214
|
+
/[if foo]
|
215
|
+
bar
|
216
|
+
baz
|
217
|
+
HAML
|
218
|
+
<!--[if foo]>
|
219
|
+
bar
|
220
|
+
baz
|
221
|
+
<![endif]-->
|
222
|
+
HTML
|
223
|
+
end
|
224
|
+
|
225
|
+
def test_style_to_css_filter
|
226
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
227
|
+
:css
|
228
|
+
foo {
|
229
|
+
bar: baz;
|
230
|
+
}
|
231
|
+
HAML
|
232
|
+
<style type="text/css">
|
233
|
+
foo {
|
234
|
+
bar: baz;
|
235
|
+
}
|
236
|
+
</style>
|
237
|
+
HTML
|
238
|
+
end
|
239
|
+
|
240
|
+
def test_inline_conditional_comment
|
241
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
242
|
+
/[if foo] bar baz
|
243
|
+
HAML
|
244
|
+
<!--[if foo]> bar baz <![endif]-->
|
245
|
+
HTML
|
246
|
+
end
|
247
|
+
|
248
|
+
def test_minus_in_tag
|
249
|
+
assert_equal("%p - foo bar -", render("<p>- foo bar -</p>"))
|
250
|
+
end
|
251
|
+
|
252
|
+
def test_equals_in_tag
|
253
|
+
assert_equal("%p = foo bar =", render("<p>= foo bar =</p>"))
|
254
|
+
end
|
255
|
+
|
256
|
+
def test_hash_in_tag
|
257
|
+
assert_equal("%p # foo bar #", render("<p># foo bar #</p>"))
|
258
|
+
end
|
259
|
+
|
260
|
+
def test_comma_post_tag
|
261
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
262
|
+
#foo
|
263
|
+
%span> Foo
|
264
|
+
,
|
265
|
+
%span bar
|
266
|
+
Foo
|
267
|
+
%span> bar
|
268
|
+
,
|
269
|
+
%span baz
|
270
|
+
HAML
|
271
|
+
<div id="foo">
|
272
|
+
<span>Foo</span>, <span>bar</span>
|
273
|
+
Foo<span>bar</span>, <span>baz</span>
|
274
|
+
</div>
|
275
|
+
HTML
|
276
|
+
end
|
277
|
+
|
278
|
+
def test_comma_post_tag_with_text_before
|
279
|
+
assert_equal(<<HAML.rstrip, render(<<HTML))
|
280
|
+
#foo
|
281
|
+
Batch
|
282
|
+
= succeed "," do
|
283
|
+
%span Foo
|
284
|
+
%span Bar
|
285
|
+
HAML
|
286
|
+
<div id="foo">
|
287
|
+
Batch
|
288
|
+
<span>Foo</span>, <span>Bar</span>
|
289
|
+
</div>
|
290
|
+
HTML
|
291
|
+
end
|
292
|
+
|
293
|
+
# Encodings
|
294
|
+
|
295
|
+
unless RUBY_VERSION < "1.9"
|
296
|
+
def test_encoding_error
|
297
|
+
render("foo\nbar\nb\xFEaz".force_encoding("utf-8"))
|
298
|
+
assert(false, "Expected exception")
|
299
|
+
rescue Haml::Error => e
|
300
|
+
assert_equal(3, e.line)
|
301
|
+
assert_equal('Invalid UTF-8 character "\xFE"', e.message)
|
302
|
+
end
|
303
|
+
|
304
|
+
def test_ascii_incompatible_encoding_error
|
305
|
+
template = "foo\nbar\nb_z".encode("utf-16le")
|
306
|
+
template[9] = "\xFE".force_encoding("utf-16le")
|
307
|
+
render(template)
|
308
|
+
assert(false, "Expected exception")
|
309
|
+
rescue Haml::Error => e
|
310
|
+
assert_equal(3, e.line)
|
311
|
+
assert_equal('Invalid UTF-16LE character "\xFE"', e.message)
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
# Regression Tests
|
316
|
+
|
317
|
+
def test_xhtml_strict_doctype
|
318
|
+
assert_equal('!!! Strict', render(<<HTML))
|
319
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
320
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
321
|
+
HTML
|
322
|
+
end
|
323
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
if ENV["COVERAGE"]
|
3
|
+
require "simplecov"
|
4
|
+
SimpleCov.start
|
5
|
+
end
|
6
|
+
|
7
|
+
require "bundler/setup"
|
8
|
+
require "minitest/autorun"
|
9
|
+
require "html2haml"
|
10
|
+
require 'html2haml/html'
|
11
|
+
require 'html2haml/html/erb'
|
12
|
+
|
13
|
+
class MiniTest::Unit::TestCase
|
14
|
+
protected
|
15
|
+
def render(text, options = {})
|
16
|
+
Haml::HTML.new(text, options).render.rstrip
|
17
|
+
end
|
18
|
+
|
19
|
+
def render_erb(text)
|
20
|
+
render(text, :erb => true)
|
21
|
+
end
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: html2haml
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0.beta.1
|
5
|
+
prerelease: 6
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Norman Clarke
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-06-27 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: hpricot
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: haml
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.2.0.beta.1
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.2.0.beta.1
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: erubis
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: ruby_parser
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: simplecov
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rake
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: minitest
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: Converts HTML into Haml
|
127
|
+
email:
|
128
|
+
- norman@njclarke.com
|
129
|
+
executables:
|
130
|
+
- html2haml
|
131
|
+
extensions: []
|
132
|
+
extra_rdoc_files: []
|
133
|
+
files:
|
134
|
+
- .gitignore
|
135
|
+
- .travis.yml
|
136
|
+
- Gemfile
|
137
|
+
- MIT-LICENSE
|
138
|
+
- README.md
|
139
|
+
- Rakefile
|
140
|
+
- bin/html2haml
|
141
|
+
- html2haml.gemspec
|
142
|
+
- lib/html2haml.rb
|
143
|
+
- lib/html2haml/exec.rb
|
144
|
+
- lib/html2haml/html.rb
|
145
|
+
- lib/html2haml/html/erb.rb
|
146
|
+
- lib/html2haml/version.rb
|
147
|
+
- test/erb_test.rb
|
148
|
+
- test/html2haml_test.rb
|
149
|
+
- test/test_helper.rb
|
150
|
+
homepage: http://haml.info
|
151
|
+
licenses: []
|
152
|
+
post_install_message:
|
153
|
+
rdoc_options: []
|
154
|
+
require_paths:
|
155
|
+
- lib
|
156
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
157
|
+
none: false
|
158
|
+
requirements:
|
159
|
+
- - ! '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
segments:
|
163
|
+
- 0
|
164
|
+
hash: 3443034388567895554
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
+
none: false
|
167
|
+
requirements:
|
168
|
+
- - ! '>'
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: 1.3.1
|
171
|
+
requirements: []
|
172
|
+
rubyforge_project:
|
173
|
+
rubygems_version: 1.8.24
|
174
|
+
signing_key:
|
175
|
+
specification_version: 3
|
176
|
+
summary: Converts HTML into Haml
|
177
|
+
test_files:
|
178
|
+
- test/erb_test.rb
|
179
|
+
- test/html2haml_test.rb
|
180
|
+
- test/test_helper.rb
|