hamlet 0.2.1 → 0.3.0
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/README.md +15 -5
- data/hamlet.gemspec +5 -2
- data/lib/hamlet/forked_slim_parser.rb +0 -6
- data/lib/hamlet/parser.rb +114 -66
- data/test/slim/test_chain_manipulation.rb +2 -2
- data/test/slim/test_code_blocks.rb +10 -10
- data/test/slim/test_code_escaping.rb +4 -4
- data/test/slim/test_code_evaluation.rb +36 -36
- data/test/slim/test_code_output.rb +22 -20
- data/test/slim/test_code_structure.rb +21 -21
- data/test/slim/test_embedded_engines.rb +16 -16
- data/test/slim/test_html_escaping.rb +6 -7
- data/test/slim/test_html_structure.rb +51 -52
- data/test/slim/test_parser_errors.rb +29 -27
- data/test/slim/test_pretty.rb +10 -8
- data/test/slim/test_ruby_errors.rb +13 -11
- data/test/slim/test_sections.rb +5 -5
- data/test/slim/test_slim_template.rb +3 -3
- data/test/slim/test_text_interpolation.rb +5 -5
- data/test/slim/test_wrapper.rb +2 -2
- metadata +34 -24
@@ -3,7 +3,7 @@ require 'helper'
|
|
3
3
|
class TestSlimCodeEvaluation < TestSlim
|
4
4
|
def test_render_with_call_to_set_attributes
|
5
5
|
source = %q{
|
6
|
-
p id="#{id_helper}" class="hello world"
|
6
|
+
<p id="#{id_helper}" class="hello world">= hello_world
|
7
7
|
}
|
8
8
|
|
9
9
|
assert_html '<p class="hello world" id="notice">Hello World from @env</p>', source
|
@@ -11,7 +11,7 @@ p id="#{id_helper}" class="hello world" = hello_world
|
|
11
11
|
|
12
12
|
def test_render_with_call_to_set_custom_attributes
|
13
13
|
source = %q{
|
14
|
-
p data-id="#{id_helper}" data-class
|
14
|
+
<p data-id="#{id_helper}" data-class>="hello world"
|
15
15
|
= hello_world
|
16
16
|
}
|
17
17
|
|
@@ -20,7 +20,7 @@ p data-id="#{id_helper}" data-class="hello world"
|
|
20
20
|
|
21
21
|
def test_render_with_call_to_set_attributes_and_call_to_set_content
|
22
22
|
source = %q{
|
23
|
-
p id="#{id_helper}" class="hello world"
|
23
|
+
<p id="#{id_helper}" class="hello world">= hello_world
|
24
24
|
}
|
25
25
|
|
26
26
|
assert_html '<p class="hello world" id="notice">Hello World from @env</p>', source
|
@@ -28,7 +28,7 @@ p id="#{id_helper}" class="hello world" = hello_world
|
|
28
28
|
|
29
29
|
def test_render_with_parameterized_call_to_set_attributes_and_call_to_set_content
|
30
30
|
source = %q{
|
31
|
-
p id="#{id_helper}" class="hello world"
|
31
|
+
<p id="#{id_helper}" class="hello world">= hello_world("Hello Ruby!")
|
32
32
|
}
|
33
33
|
|
34
34
|
assert_html '<p class="hello world" id="notice">Hello Ruby!</p>', source
|
@@ -36,7 +36,7 @@ p id="#{id_helper}" class="hello world" = hello_world("Hello Ruby!")
|
|
36
36
|
|
37
37
|
def test_render_with_spaced_parameterized_call_to_set_attributes_and_call_to_set_content
|
38
38
|
source = %q{
|
39
|
-
p id="#{id_helper}" class="hello world"
|
39
|
+
<p id="#{id_helper}" class="hello world">= hello_world "Hello Ruby!"
|
40
40
|
}
|
41
41
|
|
42
42
|
assert_html '<p class="hello world" id="notice">Hello Ruby!</p>', source
|
@@ -44,7 +44,7 @@ p id="#{id_helper}" class="hello world" = hello_world "Hello Ruby!"
|
|
44
44
|
|
45
45
|
def test_render_with_spaced_parameterized_call_to_set_attributes_and_call_to_set_content_2
|
46
46
|
source = %q{
|
47
|
-
p id="#{id_helper}" class="hello world"
|
47
|
+
<p id="#{id_helper}" class="hello world">= hello_world "Hello Ruby!", :dummy => "value"
|
48
48
|
}
|
49
49
|
|
50
50
|
assert_html '<p class="hello world" id="notice">Hello Ruby!dummy value</p>', source
|
@@ -52,7 +52,7 @@ p id="#{id_helper}" class="hello world" = hello_world "Hello Ruby!", :dummy => "
|
|
52
52
|
|
53
53
|
def test_hash_call_in_attribute
|
54
54
|
source = %q{
|
55
|
-
p id="#{hash[:a]}"
|
55
|
+
<p id="#{hash[:a]}">Test it
|
56
56
|
}
|
57
57
|
|
58
58
|
assert_html '<p id="The letter a">Test it</p>', source
|
@@ -60,7 +60,7 @@ p id="#{hash[:a]}" Test it
|
|
60
60
|
|
61
61
|
def test_instance_variable_in_attribute_without_quotes
|
62
62
|
source = %q{
|
63
|
-
p id
|
63
|
+
<p id=#{@var}>
|
64
64
|
}
|
65
65
|
|
66
66
|
assert_html '<p id="instance"></p>', source
|
@@ -68,7 +68,7 @@ p id=@var
|
|
68
68
|
|
69
69
|
def test_method_call_in_attribute_without_quotes
|
70
70
|
source = %q{
|
71
|
-
form action
|
71
|
+
<form action=#{action_path(:page, :save)} method='post'
|
72
72
|
}
|
73
73
|
|
74
74
|
assert_html '<form action="/action-page-save" method="post"></form>', source
|
@@ -76,7 +76,7 @@ form action=action_path(:page, :save) method='post'
|
|
76
76
|
|
77
77
|
def test_ruby_attribute_with_unbalanced_delimiters
|
78
78
|
source = %q{
|
79
|
-
div crazy
|
79
|
+
<div crazy=#{action_path('[')} id="crazy_delimiters">
|
80
80
|
}
|
81
81
|
|
82
82
|
assert_html '<div crazy="/action-[" id="crazy_delimiters"></div>', source
|
@@ -84,7 +84,7 @@ div crazy=action_path('[') id="crazy_delimiters"
|
|
84
84
|
|
85
85
|
def test_method_call_in_delimited_attribute_without_quotes
|
86
86
|
source = %q{
|
87
|
-
form
|
87
|
+
<form action=#{action_path(:page, :save)} method='post'>
|
88
88
|
}
|
89
89
|
|
90
90
|
assert_html '<form action="/action-page-save" method="post"></form>', source
|
@@ -92,7 +92,7 @@ form(action=action_path(:page, :save) method='post')
|
|
92
92
|
|
93
93
|
def test_method_call_in_delimited_attribute_without_quotes2
|
94
94
|
source = %q{
|
95
|
-
form
|
95
|
+
<form method='post' action=#{action_path(:page, :save)}>
|
96
96
|
}
|
97
97
|
|
98
98
|
assert_html '<form action="/action-page-save" method="post"></form>', source
|
@@ -100,7 +100,7 @@ form(method='post' action=action_path(:page, :save))
|
|
100
100
|
|
101
101
|
def test_bypassing_escape_in_attribute
|
102
102
|
source = %q{
|
103
|
-
form action
|
103
|
+
<form action==#{action_path(:page, :save)} method='post'>
|
104
104
|
}
|
105
105
|
|
106
106
|
assert_html '<form action="/action-page-save" method="post"></form>', source
|
@@ -108,7 +108,7 @@ form action==action_path(:page, :save) method='post'
|
|
108
108
|
|
109
109
|
def test_hash_call_in_attribute_without_quotes
|
110
110
|
source = %q{
|
111
|
-
p id
|
111
|
+
<p id=#{hash[:a]}>Test it
|
112
112
|
}
|
113
113
|
|
114
114
|
assert_html '<p id="The letter a">Test it</p>', source
|
@@ -116,7 +116,7 @@ p id=hash[:a] Test it
|
|
116
116
|
|
117
117
|
def test_hash_call_in_delimited_attribute
|
118
118
|
source = %q{
|
119
|
-
p
|
119
|
+
<p id=#{hash[:a]}> Test it
|
120
120
|
}
|
121
121
|
|
122
122
|
assert_html '<p id="The letter a">Test it</p>', source
|
@@ -124,7 +124,7 @@ p(id=hash[:a]) Test it
|
|
124
124
|
|
125
125
|
def test_hash_call_in_attribute_with_ruby_evaluation
|
126
126
|
source = %q{
|
127
|
-
p id
|
127
|
+
<p id=#{hash[:a] + hash[:a]}>Test it
|
128
128
|
}
|
129
129
|
|
130
130
|
assert_html '<p id="The letter aThe letter a">Test it</p>', source
|
@@ -132,7 +132,7 @@ p id={hash[:a] + hash[:a]} Test it
|
|
132
132
|
|
133
133
|
def test_hash_call_in_delimited_attribute_with_ruby_evaluation
|
134
134
|
source = %q{
|
135
|
-
p
|
135
|
+
<p id=#{hash[:a] + hash[:a]}> Test it
|
136
136
|
}
|
137
137
|
|
138
138
|
assert_html '<p id="The letter aThe letter a">Test it</p>', source
|
@@ -140,7 +140,7 @@ p(id=(hash[:a] + hash[:a])) Test it
|
|
140
140
|
|
141
141
|
def test_hash_call_in_delimited_attribute_with_ruby_evaluation_2
|
142
142
|
source = %q{
|
143
|
-
p
|
143
|
+
<p id=#{hash[:a] + hash[:a]}> Test it
|
144
144
|
}
|
145
145
|
|
146
146
|
assert_html '<p id="The letter aThe letter a">Test it</p>', source
|
@@ -148,7 +148,7 @@ p[id=(hash[:a] + hash[:a])] Test it
|
|
148
148
|
|
149
149
|
def test_hash_call_in_delimited_attribute_with_ruby_evaluation_3
|
150
150
|
source = %q{
|
151
|
-
p
|
151
|
+
<p id=#{hash[:a] + hash[:a]}>Test it
|
152
152
|
}
|
153
153
|
|
154
154
|
assert_html '<p id="The letter aThe letter a">Test it</p>', source
|
@@ -156,7 +156,7 @@ p(id=[hash[:a] + hash[:a]]) Test it
|
|
156
156
|
|
157
157
|
def test_hash_call_in_delimited_attribute_with_ruby_evaluation_4
|
158
158
|
source = %q{
|
159
|
-
p
|
159
|
+
<p id=#{hash[:a] + hash[:a]} class=#{hash[:a]}>Test it
|
160
160
|
}
|
161
161
|
|
162
162
|
assert_html '<p class="The letter a" id="The letter aThe letter a">Test it</p>', source
|
@@ -164,7 +164,7 @@ p(id=[hash[:a] + hash[:a]] class=[hash[:a]]) Test it
|
|
164
164
|
|
165
165
|
def test_hash_call_in_delimited_attribute_with_ruby_evaluation_5
|
166
166
|
source = %q{
|
167
|
-
p
|
167
|
+
<p id=#{hash[:a]} class=#{hash[:a]}>Test it
|
168
168
|
}
|
169
169
|
|
170
170
|
assert_html '<p class="The letter a" id="The letter a">Test it</p>', source
|
@@ -172,7 +172,7 @@ p(id=hash[:a] class=[hash[:a]]) Test it
|
|
172
172
|
|
173
173
|
def test_computation_in_attribute
|
174
174
|
source = %q{
|
175
|
-
p id
|
175
|
+
<p id=#{(1 + 1)*5}>Test it
|
176
176
|
}
|
177
177
|
|
178
178
|
assert_html '<p id="10">Test it</p>', source
|
@@ -180,7 +180,7 @@ p id=(1 + 1)*5 Test it
|
|
180
180
|
|
181
181
|
def test_number_type_interpolation
|
182
182
|
source = %q{
|
183
|
-
p
|
183
|
+
<p>= output_number
|
184
184
|
}
|
185
185
|
|
186
186
|
assert_html '<p>1337</p>', source
|
@@ -188,7 +188,7 @@ p = output_number
|
|
188
188
|
|
189
189
|
def test_ternary_operation_in_attribute
|
190
190
|
source = %q{
|
191
|
-
p id="#{(false ? 'notshown' : 'shown')}"
|
191
|
+
<p id="#{(false ? 'notshown' : 'shown')}">= output_number
|
192
192
|
}
|
193
193
|
|
194
194
|
assert_html '<p id="shown">1337</p>', source
|
@@ -196,35 +196,35 @@ p id="#{(false ? 'notshown' : 'shown')}" = output_number
|
|
196
196
|
|
197
197
|
def test_class_attribute_merging
|
198
198
|
source = %{
|
199
|
-
|
199
|
+
<.alpha class="beta">Test it
|
200
200
|
}
|
201
201
|
assert_html '<div class="alpha beta">Test it</div>', source
|
202
202
|
end
|
203
203
|
|
204
204
|
def test_class_attribute_merging_with_nil
|
205
205
|
source = %{
|
206
|
-
|
206
|
+
<.alpha class="beta" class=nil class="gamma">Test it
|
207
207
|
}
|
208
208
|
assert_html '<div class="alpha beta gamma">Test it</div>', source
|
209
209
|
end
|
210
210
|
|
211
211
|
def test_id_attribute_merging
|
212
212
|
source = %{
|
213
|
-
|
213
|
+
<#alpha id="beta">Test it
|
214
214
|
}
|
215
215
|
assert_html '<div id="alpha_beta">Test it</div>', source, :attr_delimiter => {'class' => ' ', 'id' => '_' }
|
216
216
|
end
|
217
217
|
|
218
218
|
def test_id_attribute_merging2
|
219
219
|
source = %{
|
220
|
-
|
220
|
+
<#alpha id="beta">Test it
|
221
221
|
}
|
222
222
|
assert_html '<div id="alpha-beta">Test it</div>', source, :attr_delimiter => {'class' => ' ', 'id' => '-' }
|
223
223
|
end
|
224
224
|
|
225
225
|
def test_boolean_attribute_false
|
226
226
|
source = %{
|
227
|
-
option selected=false
|
227
|
+
<option selected=false>Text
|
228
228
|
}
|
229
229
|
|
230
230
|
assert_html '<option>Text</option>', source
|
@@ -232,7 +232,7 @@ option selected=false Text
|
|
232
232
|
|
233
233
|
def test_boolean_attribute_true
|
234
234
|
source = %{
|
235
|
-
option selected=true
|
235
|
+
<option selected=true>Text
|
236
236
|
}
|
237
237
|
|
238
238
|
assert_html '<option selected="selected">Text</option>', source
|
@@ -240,7 +240,7 @@ option selected=true Text
|
|
240
240
|
|
241
241
|
def test_boolean_attribute_dynamic
|
242
242
|
source = %{
|
243
|
-
option selected
|
243
|
+
<option selected=#{method_which_returns_true}>Text
|
244
244
|
}
|
245
245
|
|
246
246
|
assert_html '<option selected="selected">Text</option>', source
|
@@ -248,7 +248,7 @@ option selected=method_which_returns_true Text
|
|
248
248
|
|
249
249
|
def test_boolean_attribute_nil
|
250
250
|
source = %{
|
251
|
-
option selected
|
251
|
+
<option selected=#{nil}>Text
|
252
252
|
}
|
253
253
|
|
254
254
|
assert_html '<option>Text</option>', source
|
@@ -256,7 +256,7 @@ option selected=nil Text
|
|
256
256
|
|
257
257
|
def test_boolean_attribute_string2
|
258
258
|
source = %{
|
259
|
-
option selected="selected"
|
259
|
+
<option selected="selected">Text
|
260
260
|
}
|
261
261
|
|
262
262
|
assert_html '<option selected="selected">Text</option>', source
|
@@ -264,8 +264,8 @@ option selected="selected" Text
|
|
264
264
|
|
265
265
|
def test_boolean_attribute_shortcut
|
266
266
|
source = %{
|
267
|
-
option
|
268
|
-
option
|
267
|
+
<option class="clazz" selected>Text
|
268
|
+
<option selected class="clazz">Text
|
269
269
|
}
|
270
270
|
|
271
271
|
assert_html '<option class="clazz" selected="selected">Text</option><option class="clazz" selected="selected">Text</option>', source
|
@@ -273,7 +273,7 @@ option(selected class="clazz") Text
|
|
273
273
|
|
274
274
|
def test_array_attribute
|
275
275
|
source = %{
|
276
|
-
|
276
|
+
<.alpha class="beta" class=#{[:gamma, nil, :delta, [true, false]]}
|
277
277
|
}
|
278
278
|
|
279
279
|
assert_html '<div class="alpha beta gamma delta true false"></div>', source
|
@@ -3,7 +3,7 @@ require 'helper'
|
|
3
3
|
class TestSlimCodeOutput < TestSlim
|
4
4
|
def test_render_with_call
|
5
5
|
source = %q{
|
6
|
-
p
|
6
|
+
<p
|
7
7
|
= hello_world
|
8
8
|
}
|
9
9
|
|
@@ -12,16 +12,17 @@ p
|
|
12
12
|
|
13
13
|
def test_render_with_trailing_whitespace
|
14
14
|
source = %q{
|
15
|
-
p
|
15
|
+
<p
|
16
16
|
=' hello_world
|
17
17
|
}
|
18
18
|
|
19
19
|
assert_html '<p>Hello World from @env </p>', source
|
20
20
|
end
|
21
21
|
|
22
|
+
=begin
|
22
23
|
def test_render_with_trailing_whitespace_after_tag
|
23
24
|
source = %q{
|
24
|
-
p
|
25
|
+
<p>=' hello_world
|
25
26
|
}
|
26
27
|
|
27
28
|
assert_html '<p>Hello World from @env</p> ', source
|
@@ -29,7 +30,7 @@ p=' hello_world
|
|
29
30
|
|
30
31
|
def test_no_escape_render_with_trailing_whitespace
|
31
32
|
source = %q{
|
32
|
-
p
|
33
|
+
<p
|
33
34
|
==' hello_world
|
34
35
|
}
|
35
36
|
|
@@ -43,10 +44,11 @@ p==' hello_world
|
|
43
44
|
|
44
45
|
assert_html '<p>Hello World from @env</p> ', source
|
45
46
|
end
|
47
|
+
=end
|
46
48
|
|
47
49
|
def test_render_with_conditional_call
|
48
50
|
source = %q{
|
49
|
-
p
|
51
|
+
<p
|
50
52
|
= hello_world if true
|
51
53
|
}
|
52
54
|
|
@@ -55,7 +57,7 @@ p
|
|
55
57
|
|
56
58
|
def test_render_with_parameterized_call
|
57
59
|
source = %q{
|
58
|
-
p
|
60
|
+
<p
|
59
61
|
= hello_world("Hello Ruby!")
|
60
62
|
}
|
61
63
|
|
@@ -64,7 +66,7 @@ p
|
|
64
66
|
|
65
67
|
def test_render_with_spaced_parameterized_call
|
66
68
|
source = %q{
|
67
|
-
p
|
69
|
+
<p
|
68
70
|
= hello_world "Hello Ruby!"
|
69
71
|
}
|
70
72
|
|
@@ -73,7 +75,7 @@ p
|
|
73
75
|
|
74
76
|
def test_render_with_spaced_parameterized_call_2
|
75
77
|
source = %q{
|
76
|
-
p
|
78
|
+
<p
|
77
79
|
= hello_world "Hello Ruby!", :dummy => "value"
|
78
80
|
}
|
79
81
|
|
@@ -82,8 +84,8 @@ p
|
|
82
84
|
|
83
85
|
def test_render_with_call_and_inline_text
|
84
86
|
source = %q{
|
85
|
-
h1
|
86
|
-
p
|
87
|
+
<h1>This is my title
|
88
|
+
<p
|
87
89
|
= hello_world
|
88
90
|
}
|
89
91
|
|
@@ -92,7 +94,7 @@ p
|
|
92
94
|
|
93
95
|
def test_render_with_attribute_starts_with_keyword
|
94
96
|
source = %q{
|
95
|
-
p
|
97
|
+
<p>= hello_world in_keyword
|
96
98
|
}
|
97
99
|
|
98
100
|
assert_html '<p>starts with keyword</p>', source
|
@@ -100,7 +102,7 @@ p = hello_world in_keyword
|
|
100
102
|
|
101
103
|
def test_hash_call
|
102
104
|
source = %q{
|
103
|
-
p
|
105
|
+
<p>= hash[:a]
|
104
106
|
}
|
105
107
|
|
106
108
|
assert_html '<p>The letter a</p>', source
|
@@ -108,8 +110,8 @@ p = hash[:a]
|
|
108
110
|
|
109
111
|
def test_tag_output_without_space
|
110
112
|
source = %q{
|
111
|
-
p
|
112
|
-
p
|
113
|
+
<p>= hello_world
|
114
|
+
<p>=hello_world
|
113
115
|
}
|
114
116
|
|
115
117
|
assert_html '<p>Hello World from @env</p><p>Hello World from @env</p>', source
|
@@ -117,8 +119,8 @@ p=hello_world
|
|
117
119
|
|
118
120
|
def test_class_output_without_space
|
119
121
|
source = %q{
|
120
|
-
|
121
|
-
|
122
|
+
<.test>=hello_world
|
123
|
+
<#test>==hello_world
|
122
124
|
}
|
123
125
|
|
124
126
|
assert_html '<div class="test">Hello World from @env</div><div id="test">Hello World from @env</div>', source
|
@@ -126,8 +128,8 @@ p=hello_world
|
|
126
128
|
|
127
129
|
def test_attribute_output_without_space
|
128
130
|
source = %q{
|
129
|
-
p id="test"
|
130
|
-
p
|
131
|
+
<p id="test">=hello_world
|
132
|
+
<p id="test">==hello_world
|
131
133
|
}
|
132
134
|
|
133
135
|
assert_html '<p id="test">Hello World from @env</p><p id="test">Hello World from @env</p>', source
|
@@ -136,7 +138,7 @@ p(id="test")==hello_world
|
|
136
138
|
def test_render_with_backslash_end
|
137
139
|
# Keep trailing spaces!
|
138
140
|
source = %q{
|
139
|
-
p
|
141
|
+
<p>= \
|
140
142
|
"Hello" + \
|
141
143
|
" Ruby!"
|
142
144
|
- variable = 1 + \
|
@@ -151,7 +153,7 @@ p = \
|
|
151
153
|
|
152
154
|
def test_render_with_no_trailing_character
|
153
155
|
source = %q{
|
154
|
-
p
|
156
|
+
<p>
|
155
157
|
= hello_world}
|
156
158
|
|
157
159
|
assert_html '<p>Hello World from @env</p>', source
|
@@ -3,11 +3,11 @@ require 'helper'
|
|
3
3
|
class TestSlimCodeStructure < TestSlim
|
4
4
|
def test_render_with_conditional
|
5
5
|
source = %q{
|
6
|
-
div
|
6
|
+
<div
|
7
7
|
- if show_first?
|
8
|
-
p
|
8
|
+
<p>The first paragraph
|
9
9
|
- else
|
10
|
-
p
|
10
|
+
<p>The second paragraph
|
11
11
|
}
|
12
12
|
|
13
13
|
assert_html '<div><p>The second paragraph</p></div>', source
|
@@ -15,11 +15,11 @@ div
|
|
15
15
|
|
16
16
|
def test_render_with_consecutive_conditionals
|
17
17
|
source = %q{
|
18
|
-
div
|
18
|
+
<div>
|
19
19
|
- if show_first? true
|
20
|
-
p
|
20
|
+
<p>The first paragraph
|
21
21
|
- if show_first? true
|
22
|
-
p
|
22
|
+
<p>The second paragraph
|
23
23
|
}
|
24
24
|
|
25
25
|
assert_html '<div><p>The first paragraph</p><p>The second paragraph</p></div>', source
|
@@ -27,11 +27,11 @@ div
|
|
27
27
|
|
28
28
|
def test_render_with_parameterized_conditional
|
29
29
|
source = %q{
|
30
|
-
div
|
30
|
+
<div
|
31
31
|
- if show_first? false
|
32
|
-
p
|
32
|
+
<p>The first paragraph
|
33
33
|
- else
|
34
|
-
p
|
34
|
+
<p>The second paragraph
|
35
35
|
}
|
36
36
|
|
37
37
|
assert_html '<div><p>The second paragraph</p></div>', source
|
@@ -39,9 +39,9 @@ div
|
|
39
39
|
|
40
40
|
def test_render_with_conditional_and_following_nonconditonal
|
41
41
|
source = %q{
|
42
|
-
div
|
42
|
+
<div
|
43
43
|
- if true
|
44
|
-
p
|
44
|
+
<p>The first paragraph
|
45
45
|
- var = 42
|
46
46
|
= var
|
47
47
|
}
|
@@ -51,7 +51,7 @@ div
|
|
51
51
|
|
52
52
|
def test_render_with_inline_condition
|
53
53
|
source = %q{
|
54
|
-
p
|
54
|
+
<p>= hello_world if true
|
55
55
|
}
|
56
56
|
|
57
57
|
assert_html '<p>Hello World from @env</p>', source
|
@@ -59,13 +59,13 @@ p = hello_world if true
|
|
59
59
|
|
60
60
|
def test_render_with_case
|
61
61
|
source = %q{
|
62
|
-
p
|
62
|
+
<p>
|
63
63
|
- case 42
|
64
64
|
- when 41
|
65
|
-
|
65
|
+
1
|
66
66
|
- when 42
|
67
|
-
|
68
|
-
|
67
|
+
42
|
68
|
+
> is the answer
|
69
69
|
}
|
70
70
|
|
71
71
|
assert_html '<p>42 is the answer</p>', source
|
@@ -73,10 +73,10 @@ p
|
|
73
73
|
|
74
74
|
def test_render_with_slim_comments
|
75
75
|
source = %q{
|
76
|
-
p
|
77
|
-
|
78
|
-
|
79
|
-
p
|
76
|
+
<p>Hello
|
77
|
+
# This is a comment
|
78
|
+
# Another comment
|
79
|
+
<p>World
|
80
80
|
}
|
81
81
|
|
82
82
|
assert_html '<p>Hello</p><p>World</p>', source
|
@@ -84,7 +84,7 @@ p World
|
|
84
84
|
|
85
85
|
def test_render_with_yield
|
86
86
|
source = %q{
|
87
|
-
div
|
87
|
+
<div
|
88
88
|
== yield :menu
|
89
89
|
}
|
90
90
|
|