haml 3.2.0.alpha.13 → 3.2.0.alpha.14
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of haml might be problematic. Click here for more details.
- data/CHANGELOG.md +17 -1
- data/REFERENCE.md +229 -385
- data/Rakefile +1 -1
- data/lib/haml/buffer.rb +1 -1
- data/lib/haml/compiler.rb +63 -26
- data/lib/haml/engine.rb +27 -118
- data/lib/haml/exec.rb +0 -77
- data/lib/haml/filters.rb +12 -9
- data/lib/haml/helpers.rb +3 -2
- data/lib/haml/options.rb +252 -0
- data/lib/haml/parser.rb +58 -59
- data/lib/haml/template.rb +3 -3
- data/lib/haml/template/plugin.rb +1 -1
- data/lib/haml/util.rb +37 -21
- data/lib/haml/version.rb +1 -1
- data/test/engine_test.rb +20 -2
- data/test/filters_test.rb +2 -2
- data/test/gemfiles/Gemfile.rails-3.0.x.lock +101 -0
- data/test/gemfiles/Gemfile.rails-3.1.x.lock +111 -0
- data/test/gemfiles/Gemfile.rails-3.2.x.lock +109 -0
- data/test/haml-spec/README.md +4 -4
- data/test/haml-spec/ruby_haml_test.rb +2 -2
- data/test/helper_test.rb +1 -1
- data/test/template_test.rb +72 -104
- data/test/test_helper.rb +2 -8
- data/test/util_test.rb +0 -4
- metadata +141 -153
- data/bin/html2haml +0 -7
- data/lib/haml/html.rb +0 -425
- data/lib/haml/html/erb.rb +0 -141
- data/test/html2haml/erb_tests.rb +0 -440
- data/test/html2haml_test.rb +0 -342
data/test/haml-spec/README.md
CHANGED
@@ -32,19 +32,19 @@ feature.
|
|
32
32
|
|
33
33
|
### Ruby ###
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
fancier like Rspec. To run them you probably only need to install `haml`, and
|
35
|
+
The Ruby test runner uses minitest, the same as the Ruby Haml implementation.
|
36
|
+
To run the tests you probably only need to install `haml`, `minitest` and
|
38
37
|
possibly `ruby` if your platform doesn't come with it by default. If you're
|
39
38
|
using Ruby 1.8.x, you'll also need to install `json`:
|
40
39
|
|
41
40
|
sudo gem install haml
|
41
|
+
sudo gem install minitest
|
42
42
|
# for Ruby 1.8.x; check using "ruby --version" if unsure
|
43
43
|
sudo gem install json
|
44
44
|
|
45
45
|
Then, running the Ruby test suite is easy:
|
46
46
|
|
47
|
-
ruby
|
47
|
+
ruby ruby_haml_test.rb
|
48
48
|
|
49
49
|
At the moment, running the tests with Ruby 1.8.7 fails because of issues with
|
50
50
|
the JSON library. Please use 1.9.2 until this is resolved.
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require "rubygems"
|
2
|
-
require "
|
2
|
+
require "minitest/autorun"
|
3
3
|
require "json"
|
4
4
|
require "haml"
|
5
5
|
|
6
|
-
class HamlTest <
|
6
|
+
class HamlTest < MiniTest::Unit::TestCase
|
7
7
|
contexts = JSON.parse(File.read(File.dirname(__FILE__) + "/tests.json"))
|
8
8
|
contexts.each do |context|
|
9
9
|
context[1].each do |name, test|
|
data/test/helper_test.rb
CHANGED
data/test/template_test.rb
CHANGED
@@ -44,9 +44,7 @@ class TemplateTest < MiniTest::Unit::TestCase
|
|
44
44
|
whitespace_handling original_engine list helpful
|
45
45
|
silent_script tag_parsing just_stuff partials
|
46
46
|
nuke_outer_whitespace nuke_inner_whitespace
|
47
|
-
render_layout }
|
48
|
-
# partial layouts were introduced in 2.0.0
|
49
|
-
TEMPLATES << 'partial_layout' unless ActionPack::VERSION::MAJOR < 2
|
47
|
+
render_layout partial_layout}
|
50
48
|
|
51
49
|
def setup
|
52
50
|
@base = create_base
|
@@ -67,13 +65,6 @@ class TemplateTest < MiniTest::Unit::TestCase
|
|
67
65
|
# It's usually provided by ActionController::Base.
|
68
66
|
def base.protect_against_forgery?; false; end
|
69
67
|
|
70
|
-
# In Rails <= 2.1, a fake controller object was needed
|
71
|
-
# to provide the controller path.
|
72
|
-
if ActionPack::VERSION::MAJOR < 2 ||
|
73
|
-
(ActionPack::VERSION::MAJOR == 2 && ActionPack::VERSION::MINOR < 2)
|
74
|
-
base.controller = DummyController.new
|
75
|
-
end
|
76
|
-
|
77
68
|
base
|
78
69
|
end
|
79
70
|
|
@@ -98,9 +89,11 @@ class TemplateTest < MiniTest::Unit::TestCase
|
|
98
89
|
render_method ||= proc { |n| @base.render(:file => n) }
|
99
90
|
end
|
100
91
|
|
101
|
-
|
102
|
-
|
103
|
-
|
92
|
+
silence_warnings do
|
93
|
+
load_result(name).split("\n").zip(render_method[name].split("\n")).each_with_index do |pair, line|
|
94
|
+
message = "template: #{name}\nline: #{line}"
|
95
|
+
assert_equal(pair.first, pair.last, message)
|
96
|
+
end
|
104
97
|
end
|
105
98
|
rescue Haml::Util.av_template_class(:Error) => e
|
106
99
|
if e.message =~ /Can't run [\w:]+ filter; required (one of|file) ((?:'\w+'(?: or )?)+)(, but none were found| not found)/
|
@@ -137,23 +130,6 @@ class TemplateTest < MiniTest::Unit::TestCase
|
|
137
130
|
end
|
138
131
|
end
|
139
132
|
|
140
|
-
if ActionPack::VERSION::MAJOR < 3
|
141
|
-
# Rails 3.0.0 deprecates the use of yield with a layout
|
142
|
-
# for calls to render :file
|
143
|
-
def test_action_view_templates_render_correctly
|
144
|
-
proc = lambda do
|
145
|
-
@base.content_for(:layout) {'Lorem ipsum dolor sit amet'}
|
146
|
-
assert_renders_correctly 'content_for_layout'
|
147
|
-
end
|
148
|
-
|
149
|
-
if @base.respond_to?(:with_output_buffer)
|
150
|
-
@base.with_output_buffer("", &proc)
|
151
|
-
else
|
152
|
-
proc.call
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
133
|
def test_instance_variables_should_work_inside_templates
|
158
134
|
@base.instance_variable_set("@content_for_layout", 'something')
|
159
135
|
assert_equal("<p>something</p>", render("%p= @content_for_layout").chomp)
|
@@ -202,7 +178,7 @@ HTML
|
|
202
178
|
bar
|
203
179
|
= "foo".gsub(/./) do |s|
|
204
180
|
- "flup"
|
205
|
-
- end
|
181
|
+
- end)
|
206
182
|
baz
|
207
183
|
HAML
|
208
184
|
end
|
@@ -238,10 +214,8 @@ END
|
|
238
214
|
end
|
239
215
|
end
|
240
216
|
|
241
|
-
|
242
|
-
|
243
|
-
def test_form_builder_label_with_block
|
244
|
-
assert_equal(<<HTML, render(<<HAML, :action_view))
|
217
|
+
def test_form_builder_label_with_block
|
218
|
+
assert_equal(<<HTML, render(<<HAML, :action_view))
|
245
219
|
<form accept-charset="UTF-8" action="" method="post">#{rails_form_opener}
|
246
220
|
<label for="article_title">Block content
|
247
221
|
</label>
|
@@ -251,83 +225,78 @@ HTML
|
|
251
225
|
= f.label :title do
|
252
226
|
Block content
|
253
227
|
HAML
|
254
|
-
end
|
255
228
|
end
|
256
229
|
|
257
230
|
## XSS Protection Tests
|
258
231
|
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
if Haml::Util.rails_xss_safe?
|
263
|
-
def test_escape_html_option_set
|
264
|
-
assert Haml::Template.options[:escape_html]
|
265
|
-
end
|
232
|
+
def test_escape_html_option_set
|
233
|
+
assert Haml::Template.options[:escape_html]
|
234
|
+
end
|
266
235
|
|
267
|
-
|
268
|
-
|
269
|
-
|
236
|
+
def test_xss_protection
|
237
|
+
assert_equal("Foo & Bar\n", render('= "Foo & Bar"', :action_view))
|
238
|
+
end
|
270
239
|
|
271
|
-
|
272
|
-
|
273
|
-
|
240
|
+
def test_xss_protection_with_safe_strings
|
241
|
+
assert_equal("Foo & Bar\n", render('= Haml::Util.html_safe("Foo & Bar")', :action_view))
|
242
|
+
end
|
274
243
|
|
275
|
-
|
276
|
-
|
277
|
-
|
244
|
+
def test_xss_protection_with_bang
|
245
|
+
assert_equal("Foo & Bar\n", render('!= "Foo & Bar"', :action_view))
|
246
|
+
end
|
278
247
|
|
279
|
-
|
280
|
-
|
281
|
-
|
248
|
+
def test_xss_protection_in_interpolation
|
249
|
+
assert_equal("Foo & Bar\n", render('Foo #{"&"} Bar', :action_view))
|
250
|
+
end
|
282
251
|
|
283
|
-
|
284
|
-
|
285
|
-
|
252
|
+
def test_xss_protection_in_attributes
|
253
|
+
assert_equal("<div data-html='<foo>bar</foo>'></div>\n", render('%div{ "data-html" => "<foo>bar</foo>" }', :action_view))
|
254
|
+
end
|
286
255
|
|
287
|
-
|
288
|
-
|
289
|
-
|
256
|
+
def test_xss_protection_in_attributes_with_safe_strings
|
257
|
+
assert_equal("<div data-html='<foo>bar</foo>'></div>\n", render('%div{ "data-html" => "<foo>bar</foo>".html_safe }', :action_view))
|
258
|
+
end
|
290
259
|
|
291
|
-
|
292
|
-
|
293
|
-
|
260
|
+
def test_xss_protection_with_bang_in_interpolation
|
261
|
+
assert_equal("Foo & Bar\n", render('! Foo #{"&"} Bar', :action_view))
|
262
|
+
end
|
294
263
|
|
295
|
-
|
296
|
-
|
297
|
-
|
264
|
+
def test_xss_protection_with_safe_strings_in_interpolation
|
265
|
+
assert_equal("Foo & Bar\n", render('Foo #{Haml::Util.html_safe("&")} Bar', :action_view))
|
266
|
+
end
|
298
267
|
|
299
|
-
|
300
|
-
|
301
|
-
|
268
|
+
def test_xss_protection_with_mixed_strings_in_interpolation
|
269
|
+
assert_equal("Foo & Bar & Baz\n", render('Foo #{Haml::Util.html_safe("&")} Bar #{"&"} Baz', :action_view))
|
270
|
+
end
|
302
271
|
|
303
|
-
|
304
|
-
|
305
|
-
|
272
|
+
def test_rendered_string_is_html_safe
|
273
|
+
assert(render("Foo").html_safe?)
|
274
|
+
end
|
306
275
|
|
307
|
-
|
308
|
-
|
309
|
-
|
276
|
+
def test_rendered_string_is_html_safe_with_action_view
|
277
|
+
assert(render("Foo", :action_view).html_safe?)
|
278
|
+
end
|
310
279
|
|
311
|
-
|
312
|
-
|
313
|
-
|
280
|
+
def test_xss_html_escaping_with_non_strings
|
281
|
+
assert_equal("4\n", render("= html_escape(4)"))
|
282
|
+
end
|
314
283
|
|
315
|
-
|
316
|
-
|
317
|
-
|
284
|
+
def test_xss_protection_with_concat
|
285
|
+
assert_equal("Foo & Bar", render('- concat "Foo & Bar"', :action_view))
|
286
|
+
end
|
318
287
|
|
319
|
-
|
320
|
-
|
321
|
-
|
288
|
+
def test_xss_protection_with_concat_with_safe_string
|
289
|
+
assert_equal("Foo & Bar", render('- concat(Haml::Util.html_safe("Foo & Bar"))', :action_view))
|
290
|
+
end
|
322
291
|
|
323
|
-
|
324
|
-
|
325
|
-
|
292
|
+
def test_xss_protection_with_safe_concat
|
293
|
+
assert_equal("Foo & Bar", render('- safe_concat "Foo & Bar"', :action_view))
|
294
|
+
end
|
326
295
|
|
327
|
-
|
296
|
+
## Regression
|
328
297
|
|
329
|
-
|
330
|
-
|
298
|
+
def test_xss_protection_with_nested_haml_tag
|
299
|
+
assert_equal(<<HTML, render(<<HAML, :action_view))
|
331
300
|
<div>
|
332
301
|
<ul>
|
333
302
|
<li>Content!</li>
|
@@ -338,10 +307,10 @@ HTML
|
|
338
307
|
- haml_tag :ul do
|
339
308
|
- haml_tag :li, "Content!"
|
340
309
|
HAML
|
341
|
-
|
310
|
+
end
|
342
311
|
|
343
|
-
|
344
|
-
|
312
|
+
def test_xss_protection_with_form_for
|
313
|
+
assert_equal(<<HTML, render(<<HAML, :action_view))
|
345
314
|
<form accept-charset="UTF-8" action="" method="post">#{rails_form_opener}
|
346
315
|
Title:
|
347
316
|
<input id="article_title" name="article[title]" size="30" type="text" value="Hello" />
|
@@ -355,28 +324,27 @@ HTML
|
|
355
324
|
Body:
|
356
325
|
= f.text_field :body
|
357
326
|
HAML
|
358
|
-
|
327
|
+
end
|
359
328
|
|
360
|
-
|
361
|
-
|
362
|
-
|
329
|
+
if defined?(ActionView::Helpers::PrototypeHelper)
|
330
|
+
def test_rjs
|
331
|
+
assert_equal(<<HTML, render(<<HAML, :action_view))
|
363
332
|
window.location.reload();
|
364
333
|
HTML
|
365
334
|
= update_page do |p|
|
366
335
|
- p.reload
|
367
336
|
HAML
|
368
|
-
end
|
369
337
|
end
|
338
|
+
end
|
370
339
|
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
340
|
+
def test_cache
|
341
|
+
@base.controller = ActionController::Base.new
|
342
|
+
@base.controller.perform_caching = false
|
343
|
+
assert_equal(<<HTML, render(<<HAML, :action_view))
|
375
344
|
Test
|
376
345
|
HTML
|
377
346
|
- cache do
|
378
347
|
Test
|
379
348
|
HAML
|
380
|
-
end
|
381
349
|
end
|
382
350
|
end
|
data/test/test_helper.rb
CHANGED
@@ -6,7 +6,6 @@ end
|
|
6
6
|
require 'rubygems'
|
7
7
|
gem "minitest"
|
8
8
|
require 'bundler/setup'
|
9
|
-
require 'test/unit' # On JRuby, tests won't run unless we include this. WTF?
|
10
9
|
require 'minitest/autorun'
|
11
10
|
require 'action_pack'
|
12
11
|
require 'action_controller'
|
@@ -73,11 +72,6 @@ class MiniTest::Unit::TestCase
|
|
73
72
|
flunk "Expected exception #{klass}, none raised"
|
74
73
|
end
|
75
74
|
|
76
|
-
def assert_raises_line(line)
|
77
|
-
yield
|
78
|
-
rescue Sass::SyntaxError => e
|
79
|
-
assert_equal(line, e.sass_line)
|
80
|
-
else
|
81
|
-
flunk "Expected exception on line #{line}, none raised"
|
82
|
-
end
|
83
75
|
end
|
76
|
+
|
77
|
+
$VERBOSE = true
|
data/test/util_test.rb
CHANGED
@@ -16,10 +16,6 @@ class UtilTest < MiniTest::Unit::TestCase
|
|
16
16
|
def _after_load; @arr << :loaded; end
|
17
17
|
end
|
18
18
|
|
19
|
-
def test_scope
|
20
|
-
assert(File.exist?(scope("Rakefile")))
|
21
|
-
end
|
22
|
-
|
23
19
|
def test_powerset
|
24
20
|
return unless Set[Set[]] == Set[Set[]] # There's a bug in Ruby 1.8.6 that breaks nested set equality
|
25
21
|
assert_equal([[].to_set].to_set,
|
metadata
CHANGED
@@ -1,183 +1,147 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: haml
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 906808591
|
5
5
|
prerelease: 6
|
6
|
+
segments:
|
7
|
+
- 3
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
- alpha
|
11
|
+
- 14
|
12
|
+
version: 3.2.0.alpha.14
|
6
13
|
platform: ruby
|
7
|
-
authors:
|
14
|
+
authors:
|
8
15
|
- Nathan Weizenbaum
|
9
16
|
- Hampton Catlin
|
10
17
|
- Norman Clarke
|
11
18
|
autorequire:
|
12
19
|
bindir: bin
|
13
20
|
cert_chain: []
|
14
|
-
|
15
|
-
|
16
|
-
|
21
|
+
|
22
|
+
date: 2012-06-14 00:00:00 Z
|
23
|
+
dependencies:
|
24
|
+
- !ruby/object:Gem::Dependency
|
17
25
|
name: tilt
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
|
-
requirements:
|
21
|
-
- - ! '>='
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: '0'
|
24
|
-
type: :runtime
|
25
26
|
prerelease: false
|
26
|
-
|
27
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
28
|
none: false
|
28
|
-
requirements:
|
29
|
-
- -
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
|
32
|
-
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
hash: 3
|
33
|
+
segments:
|
34
|
+
- 0
|
35
|
+
version: "0"
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
33
39
|
name: yard
|
34
|
-
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
|
-
requirements:
|
37
|
-
- - ! '>='
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 0.5.3
|
40
|
-
type: :development
|
41
40
|
prerelease: false
|
42
|
-
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
43
42
|
none: false
|
44
|
-
requirements:
|
45
|
-
- -
|
46
|
-
- !ruby/object:Gem::Version
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 13
|
47
|
+
segments:
|
48
|
+
- 0
|
49
|
+
- 5
|
50
|
+
- 3
|
47
51
|
version: 0.5.3
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: maruku
|
50
|
-
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
|
-
requirements:
|
53
|
-
- - ! '>='
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 0.5.9
|
56
52
|
type: :development
|
53
|
+
version_requirements: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: maruku
|
57
56
|
prerelease: false
|
58
|
-
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
59
58
|
none: false
|
60
|
-
requirements:
|
61
|
-
- -
|
62
|
-
- !ruby/object:Gem::Version
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 25
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
- 5
|
66
|
+
- 9
|
63
67
|
version: 0.5.9
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: hpricot
|
66
|
-
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
|
-
requirements:
|
69
|
-
- - ! '>='
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '0'
|
72
68
|
type: :development
|
73
|
-
|
74
|
-
|
75
|
-
none: false
|
76
|
-
requirements:
|
77
|
-
- - ! '>='
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: '0'
|
80
|
-
- !ruby/object:Gem::Dependency
|
69
|
+
version_requirements: *id003
|
70
|
+
- !ruby/object:Gem::Dependency
|
81
71
|
name: rails
|
82
|
-
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
|
-
requirements:
|
85
|
-
- - ! '>='
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: 3.0.0
|
88
|
-
type: :development
|
89
72
|
prerelease: false
|
90
|
-
|
73
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
91
74
|
none: false
|
92
|
-
requirements:
|
93
|
-
- -
|
94
|
-
- !ruby/object:Gem::Version
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 7
|
79
|
+
segments:
|
80
|
+
- 3
|
81
|
+
- 0
|
82
|
+
- 0
|
95
83
|
version: 3.0.0
|
96
|
-
- !ruby/object:Gem::Dependency
|
97
|
-
name: ruby_parser
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
|
-
requirements:
|
101
|
-
- - ! '>='
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
84
|
type: :development
|
105
|
-
|
106
|
-
|
107
|
-
none: false
|
108
|
-
requirements:
|
109
|
-
- - ! '>='
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
112
|
-
- !ruby/object:Gem::Dependency
|
85
|
+
version_requirements: *id004
|
86
|
+
- !ruby/object:Gem::Dependency
|
113
87
|
name: rbench
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
|
-
requirements:
|
117
|
-
- - ! '>='
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
version: '0'
|
120
|
-
type: :development
|
121
88
|
prerelease: false
|
122
|
-
|
123
|
-
none: false
|
124
|
-
requirements:
|
125
|
-
- - ! '>='
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: '0'
|
128
|
-
- !ruby/object:Gem::Dependency
|
129
|
-
name: minitest
|
130
|
-
requirement: !ruby/object:Gem::Requirement
|
89
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
131
90
|
none: false
|
132
|
-
requirements:
|
133
|
-
- -
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
hash: 3
|
95
|
+
segments:
|
96
|
+
- 0
|
97
|
+
version: "0"
|
136
98
|
type: :development
|
99
|
+
version_requirements: *id005
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: minitest
|
137
102
|
prerelease: false
|
138
|
-
|
139
|
-
none: false
|
140
|
-
requirements:
|
141
|
-
- - ! '>='
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: '0'
|
144
|
-
- !ruby/object:Gem::Dependency
|
145
|
-
name: json
|
146
|
-
requirement: !ruby/object:Gem::Requirement
|
103
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
147
104
|
none: false
|
148
|
-
requirements:
|
149
|
-
- -
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
152
112
|
type: :development
|
113
|
+
version_requirements: *id006
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: json
|
153
116
|
prerelease: false
|
154
|
-
|
117
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
155
118
|
none: false
|
156
|
-
requirements:
|
157
|
-
- -
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
hash: 3
|
123
|
+
segments:
|
124
|
+
- 0
|
125
|
+
version: "0"
|
126
|
+
type: :development
|
127
|
+
version_requirements: *id007
|
128
|
+
description: |
|
129
|
+
Haml (HTML Abstraction Markup Language) is a layer on top of HTML or XML that's
|
163
130
|
designed to express the structure of documents in a non-repetitive, elegant, and
|
164
|
-
|
165
131
|
easy way by using indentation rather than closing tags and allowing Ruby to be
|
166
|
-
|
167
132
|
embedded with ease. It was originally envisioned as a plugin for Ruby on Rails,
|
168
|
-
|
169
133
|
but it can function as a stand-alone templating engine.
|
170
134
|
|
171
|
-
|
172
|
-
email:
|
135
|
+
email:
|
173
136
|
- haml@googlegroups.com
|
174
137
|
- norman@njclarke.com
|
175
|
-
executables:
|
138
|
+
executables:
|
176
139
|
- haml
|
177
|
-
- html2haml
|
178
140
|
extensions: []
|
141
|
+
|
179
142
|
extra_rdoc_files: []
|
180
|
-
|
143
|
+
|
144
|
+
files:
|
181
145
|
- rails/init.rb
|
182
146
|
- lib/haml/buffer.rb
|
183
147
|
- lib/haml/compiler.rb
|
@@ -190,8 +154,7 @@ files:
|
|
190
154
|
- lib/haml/helpers/rails_323_textarea_fix.rb
|
191
155
|
- lib/haml/helpers/xss_mods.rb
|
192
156
|
- lib/haml/helpers.rb
|
193
|
-
- lib/haml/
|
194
|
-
- lib/haml/html.rb
|
157
|
+
- lib/haml/options.rb
|
195
158
|
- lib/haml/parser.rb
|
196
159
|
- lib/haml/railtie.rb
|
197
160
|
- lib/haml/template/options.rb
|
@@ -201,7 +164,6 @@ files:
|
|
201
164
|
- lib/haml/version.rb
|
202
165
|
- lib/haml.rb
|
203
166
|
- bin/haml
|
204
|
-
- bin/html2haml
|
205
167
|
- test/engine_test.rb
|
206
168
|
- test/erb/_av_partial_1.erb
|
207
169
|
- test/erb/_av_partial_2.erb
|
@@ -209,8 +171,11 @@ files:
|
|
209
171
|
- test/erb/standard.erb
|
210
172
|
- test/filters_test.rb
|
211
173
|
- test/gemfiles/Gemfile.rails-3.0.x
|
174
|
+
- test/gemfiles/Gemfile.rails-3.0.x.lock
|
212
175
|
- test/gemfiles/Gemfile.rails-3.1.x
|
176
|
+
- test/gemfiles/Gemfile.rails-3.1.x.lock
|
213
177
|
- test/gemfiles/Gemfile.rails-3.2.x
|
178
|
+
- test/gemfiles/Gemfile.rails-3.2.x.lock
|
214
179
|
- test/haml-spec/LICENSE
|
215
180
|
- test/haml-spec/lua_haml_spec.lua
|
216
181
|
- test/haml-spec/perl_haml_test.pl
|
@@ -218,8 +183,6 @@ files:
|
|
218
183
|
- test/haml-spec/ruby_haml_test.rb
|
219
184
|
- test/haml-spec/tests.json
|
220
185
|
- test/helper_test.rb
|
221
|
-
- test/html2haml/erb_tests.rb
|
222
|
-
- test/html2haml_test.rb
|
223
186
|
- test/markaby/standard.mab
|
224
187
|
- test/mocks/article.rb
|
225
188
|
- test/results/content_for_layout.xhtml
|
@@ -282,33 +245,58 @@ files:
|
|
282
245
|
- REFERENCE.md
|
283
246
|
homepage: http://haml.info/
|
284
247
|
licenses: []
|
285
|
-
|
248
|
+
|
249
|
+
post_install_message: |+
|
250
|
+
|
251
|
+
HEADS UP! Haml 3.2 has many improvements, but also has changes that may break
|
252
|
+
your application:
|
253
|
+
|
254
|
+
* Support for Ruby 1.8.6 dropped
|
255
|
+
* Support for Rails 2 dropped
|
256
|
+
* Sass filter now always outputs <script> tags
|
257
|
+
* Data attributes are now hyphenated, not underscored
|
258
|
+
* html2haml utility moved to the html2haml gem
|
259
|
+
* Textile and Maruku filters moved to the haml-contrib gem
|
260
|
+
|
261
|
+
For more info see:
|
262
|
+
|
263
|
+
http://rubydoc.info/github/haml/haml/file/CHANGELOG.md
|
264
|
+
|
286
265
|
rdoc_options: []
|
287
|
-
|
266
|
+
|
267
|
+
require_paths:
|
288
268
|
- lib
|
289
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
269
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
290
270
|
none: false
|
291
|
-
requirements:
|
292
|
-
- -
|
293
|
-
- !ruby/object:Gem::Version
|
294
|
-
|
295
|
-
|
271
|
+
requirements:
|
272
|
+
- - ">="
|
273
|
+
- !ruby/object:Gem::Version
|
274
|
+
hash: 3
|
275
|
+
segments:
|
276
|
+
- 0
|
277
|
+
version: "0"
|
278
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
296
279
|
none: false
|
297
|
-
requirements:
|
298
|
-
- -
|
299
|
-
- !ruby/object:Gem::Version
|
280
|
+
requirements:
|
281
|
+
- - ">"
|
282
|
+
- !ruby/object:Gem::Version
|
283
|
+
hash: 25
|
284
|
+
segments:
|
285
|
+
- 1
|
286
|
+
- 3
|
287
|
+
- 1
|
300
288
|
version: 1.3.1
|
301
289
|
requirements: []
|
290
|
+
|
302
291
|
rubyforge_project:
|
303
292
|
rubygems_version: 1.8.24
|
304
293
|
signing_key:
|
305
294
|
specification_version: 3
|
306
295
|
summary: An elegant, structured (X)HTML/XML templating engine.
|
307
|
-
test_files:
|
296
|
+
test_files:
|
308
297
|
- test/engine_test.rb
|
309
298
|
- test/filters_test.rb
|
310
299
|
- test/haml-spec/ruby_haml_test.rb
|
311
300
|
- test/helper_test.rb
|
312
|
-
- test/html2haml_test.rb
|
313
301
|
- test/template_test.rb
|
314
302
|
- test/util_test.rb
|