haml 1.0.5 → 1.5.0
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/README +229 -0
- data/Rakefile +56 -60
- data/VERSION +1 -1
- data/bin/haml +4 -14
- data/bin/html2haml +89 -0
- data/bin/sass +8 -0
- data/init.rb +5 -1
- data/lib/haml.rb +643 -0
- data/lib/haml/buffer.rb +33 -30
- data/lib/haml/engine.rb +258 -75
- data/lib/haml/error.rb +43 -0
- data/lib/haml/exec.rb +181 -0
- data/lib/haml/filters.rb +89 -0
- data/lib/haml/helpers.rb +19 -5
- data/lib/haml/helpers/action_view_mods.rb +28 -4
- data/lib/haml/template.rb +13 -27
- data/lib/sass.rb +418 -0
- data/lib/sass/constant.rb +190 -0
- data/lib/sass/constant/color.rb +77 -0
- data/lib/sass/constant/literal.rb +51 -0
- data/lib/sass/constant/number.rb +87 -0
- data/lib/sass/constant/operation.rb +30 -0
- data/lib/sass/constant/string.rb +18 -0
- data/lib/sass/engine.rb +179 -0
- data/lib/sass/error.rb +35 -0
- data/lib/sass/plugin.rb +119 -0
- data/lib/sass/tree/attr_node.rb +44 -0
- data/lib/sass/tree/node.rb +29 -0
- data/lib/sass/tree/rule_node.rb +47 -0
- data/lib/sass/tree/value_node.rb +12 -0
- data/test/benchmark.rb +16 -19
- data/test/haml/engine_test.rb +220 -0
- data/test/{helper_test.rb → haml/helper_test.rb} +9 -8
- data/test/{mocks → haml/mocks}/article.rb +0 -0
- data/test/{results → haml/results}/content_for_layout.xhtml +0 -0
- data/test/{results → haml/results}/eval_suppressed.xhtml +0 -0
- data/test/haml/results/filters.xhtml +57 -0
- data/test/{results → haml/results}/helpers.xhtml +10 -0
- data/test/haml/results/helpful.xhtml +8 -0
- data/test/{results → haml/results}/just_stuff.xhtml +5 -0
- data/test/{results → haml/results}/list.xhtml +0 -0
- data/test/{results → haml/results}/original_engine.xhtml +1 -1
- data/test/{results → haml/results}/partials.xhtml +0 -0
- data/test/{results → haml/results}/silent_script.xhtml +0 -0
- data/test/{results → haml/results}/standard.xhtml +2 -1
- data/test/{results → haml/results}/tag_parsing.xhtml +0 -0
- data/test/{results → haml/results}/very_basic.xhtml +0 -0
- data/test/haml/results/whitespace_handling.xhtml +104 -0
- data/test/{rhtml → haml/rhtml}/standard.rhtml +4 -1
- data/test/{runner.rb → haml/runner.rb} +1 -1
- data/test/{template_test.rb → haml/template_test.rb} +28 -23
- data/test/{templates → haml/templates}/_partial.haml +0 -0
- data/test/{templates → haml/templates}/_text_area.haml +0 -0
- data/test/haml/templates/breakage.haml +8 -0
- data/test/{templates → haml/templates}/content_for_layout.haml +0 -0
- data/test/{templates → haml/templates}/eval_suppressed.haml +0 -0
- data/test/haml/templates/filters.haml +53 -0
- data/test/{templates → haml/templates}/helpers.haml +10 -1
- data/test/{templates → haml/templates}/helpful.haml +3 -0
- data/test/{templates → haml/templates}/just_stuff.haml +7 -0
- data/test/{templates → haml/templates}/list.haml +0 -0
- data/test/haml/templates/original_engine.haml +17 -0
- data/test/{templates → haml/templates}/partialize.haml +0 -0
- data/test/{templates → haml/templates}/partials.haml +0 -0
- data/test/{templates → haml/templates}/silent_script.haml +0 -0
- data/test/{templates → haml/templates}/standard.haml +3 -1
- data/test/{templates → haml/templates}/tag_parsing.haml +0 -0
- data/test/{templates → haml/templates}/very_basic.haml +0 -0
- data/test/haml/templates/whitespace_handling.haml +137 -0
- data/test/profile.rb +36 -18
- data/test/sass/engine_test.rb +87 -0
- data/test/sass/plugin_test.rb +103 -0
- data/test/sass/results/basic.css +9 -0
- data/test/sass/results/compact.css +5 -0
- data/test/sass/results/complex.css +86 -0
- data/test/sass/results/constants.css +12 -0
- data/test/sass/results/expanded.css +18 -0
- data/test/sass/results/nested.css +14 -0
- data/test/sass/templates/basic.sass +23 -0
- data/test/sass/templates/bork.sass +2 -0
- data/test/sass/templates/compact.sass +15 -0
- data/test/sass/templates/complex.sass +291 -0
- data/test/sass/templates/constants.sass +80 -0
- data/test/sass/templates/expanded.sass +15 -0
- data/test/sass/templates/nested.sass +15 -0
- metadata +98 -48
- data/REFERENCE +0 -662
- data/test/engine_test.rb +0 -93
- data/test/results/helpful.xhtml +0 -5
- data/test/results/whitespace_handling.xhtml +0 -51
- data/test/templates/original_engine.haml +0 -17
- data/test/templates/whitespace_handling.haml +0 -66
data/test/engine_test.rb
DELETED
@@ -1,93 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require File.dirname(__FILE__) + '/../lib/haml/engine'
|
5
|
-
|
6
|
-
class EngineTest < Test::Unit::TestCase
|
7
|
-
|
8
|
-
def render(text, options = {})
|
9
|
-
Haml::Engine.new(text, options).to_html
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_empty_render_should_remain_empty
|
13
|
-
assert_equal('', render(''))
|
14
|
-
end
|
15
|
-
|
16
|
-
# This is ugly because Hashes are unordered; we don't always know the order
|
17
|
-
# in which attributes will be returned.
|
18
|
-
# There is probably a better way to do this.
|
19
|
-
def test_attributes_should_render_correctly
|
20
|
-
assert_equal("<div class='atlantis' style='ugly'>\n</div>", render(".atlantis{:style => 'ugly'}").chomp)
|
21
|
-
rescue
|
22
|
-
assert_equal("<div style='ugly' class='atlantis'>\n</div>", render(".atlantis{:style => 'ugly'}").chomp)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_ruby_code_should_work_inside_attributes
|
26
|
-
author = 'hcatlin'
|
27
|
-
assert_equal("<p class='3'>foo</p>", render("%p{:class => 1+2} foo").chomp)
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_nil_should_render_empty_tag
|
31
|
-
assert_equal("<div class='no_attributes'>\n</div>",
|
32
|
-
render(".no_attributes{:nil => nil}").chomp)
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_strings_should_get_stripped_inside_tags
|
36
|
-
assert_equal("<div class='stripped'>This should have no spaces in front of it</div>",
|
37
|
-
render(".stripped This should have no spaces in front of it").chomp)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_one_liner_should_be_one_line
|
41
|
-
assert_equal("<p>Hello</p>", render('%p Hello').chomp)
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_long_liner_should_not_print_on_one_line
|
45
|
-
assert_equal("<div>\n #{'x' * 51}\n</div>", render("%div #{'x' * 51}").chomp)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_multi_render
|
49
|
-
engine = Haml::Engine.new("%strong Hi there!")
|
50
|
-
assert_equal("<strong>Hi there!</strong>\n", engine.to_html)
|
51
|
-
assert_equal("<strong>Hi there!</strong>\n", engine.to_html)
|
52
|
-
assert_equal("<strong>Hi there!</strong>\n", engine.to_html)
|
53
|
-
end
|
54
|
-
|
55
|
-
# Options tests
|
56
|
-
|
57
|
-
def test_stop_eval
|
58
|
-
assert_equal("", render("= 'Hello'", :suppress_eval => true))
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_attr_wrapper
|
62
|
-
assert_equal("<p strange=*attrs*>\n</p>\n", render("%p{ :strange => 'attrs'}", :attr_wrapper => '*'))
|
63
|
-
assert_equal("<p escaped='quo\"te'>\n</p>\n", render("%p{ :escaped => 'quo\"te'}", :attr_wrapper => '"'))
|
64
|
-
assert_equal("<p escaped=\"q'uo"te\">\n</p>\n", render("%p{ :escaped => 'q\\'uo\"te'}", :attr_wrapper => '"'))
|
65
|
-
assert_equal("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n", render("!!! XML", :attr_wrapper => '"'))
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_locals
|
69
|
-
assert_equal("<p>Paragraph!</p>\n", render("%p= text", :locals => { :text => "Paragraph!" }))
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_precompiled
|
73
|
-
precompiled = <<-END
|
74
|
-
def _haml_render
|
75
|
-
_hamlout = @haml_stack[-1]
|
76
|
-
_erbout = _hamlout.buffer
|
77
|
-
|
78
|
-
_hamlout.open_tag("p", 0, nil, true, "", nil, nil, false)
|
79
|
-
@haml_lineno = 1
|
80
|
-
haml_temp = "Haml Rocks Socks"
|
81
|
-
haml_temp = _hamlout.push_script(haml_temp, 1, false)
|
82
|
-
_hamlout.close_tag("p", 0)
|
83
|
-
end
|
84
|
-
END
|
85
|
-
|
86
|
-
assert_equal("<p>Haml Rocks Socks</p>\n", render("%h1 I shall not be rendered", :precompiled => precompiled))
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_comps
|
90
|
-
assert_equal(-1, "foo" <=> nil)
|
91
|
-
assert_equal(1, nil <=> "foo")
|
92
|
-
end
|
93
|
-
end
|
data/test/results/helpful.xhtml
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
<div id='whitespace_test'>
|
2
|
-
<div class='text_area_test_area'>
|
3
|
-
<textarea>Oneline</textarea>
|
4
|
-
</div>
|
5
|
-
<textarea>BLAH
|
6
|
-
</textarea>
|
7
|
-
<div class='text_area_test_area'>
|
8
|
-
<textarea>Two
lines</textarea>
|
9
|
-
</div>
|
10
|
-
<textarea>BLAH
|
11
|
-
</textarea>
|
12
|
-
<div class='text_area_test_area'>
|
13
|
-
<textarea>Oneline</textarea>
|
14
|
-
</div>
|
15
|
-
<textarea>BLAH
</textarea>
|
16
|
-
<div class='text_area_test_area'>
|
17
|
-
<textarea>Two
lines</textarea>
|
18
|
-
</div>
|
19
|
-
<textarea>BLAH
</textarea>
|
20
|
-
<div id='flattened'>
|
21
|
-
<div class='text_area_test_area'>
|
22
|
-
<textarea>Two
lines</textarea>
|
23
|
-
</div>
|
24
|
-
<textarea>BLAH
</textarea>
|
25
|
-
</div>
|
26
|
-
</div>
|
27
|
-
<div class='hithere'>
|
28
|
-
Foo bar
|
29
|
-
<pre>foo bar</pre>
|
30
|
-
<pre>foo
bar</pre>
|
31
|
-
<p><pre>foo
bar</pre></p>
|
32
|
-
<p>
|
33
|
-
foo
|
34
|
-
bar
|
35
|
-
</p>
|
36
|
-
<pre>
 ___
 ,o88888
 ,o8888888'
 ,:o:o:oooo. ,8O88Pd8888"
 ,.::.::o:ooooOoOoO. ,oO8O8Pd888'"
 ,.:.::o:ooOoOoOO8O8OOo.8OOPd8O8O"
 , ..:.::o:ooOoOOOO8OOOOo.FdO8O8"
 , ..:.::o:ooOoOO8O888O8O,COCOO"
 , . ..:.::o:ooOoOOOO8OOOOCOCO"
 . ..:.::o:ooOoOoOO8O8OCCCC"o
 . ..:.::o:ooooOoCoCCC"o:o
 . ..:.::o:o:,cooooCo"oo:o:
 ` . . ..:.:cocoooo"'o:o:::'
 .` . ..::ccccoc"'o:o:o:::'
 :.:. ,c:cccc"':.:.:.:.:.'
 ..:.:"'`::::c:"'..:.:.:.:.:.' http://www.chris.com/ASCII/
 ...:.'.:.::::"' . . . . .'
 .. . ....:."' ` . . . ''
 . . . ...."'
 .. . ."' -hrr-
 .


 It's a planet!
%strong This shouldn't be bold!
</pre>
|
37
|
-
<strong>This should!</strong>
|
38
|
-
<textarea>
|
39
|
-
___ ___ ___ ___
 /\__\ /\ \ /\__\ /\__\
 /:/ / /::\ \ /::| | /:/ /
 /:/__/ /:/\:\ \ /:|:| | /:/ /
 /::\ \ ___ /::\~\:\ \ /:/|:|__|__ /:/ /
 /:/\:\ /\__\ /:/\:\ \:\__\ /:/ |::::\__\ /:/__/
 \/__\:\/:/ / \/__\:\/:/ / \/__/~~/:/ / \:\ \
 \::/ / \::/ / /:/ / \:\ \
 /:/ / /:/ / /:/ / \:\ \
 /:/ / /:/ / /:/ / \:\__\
 \/__/ \/__/ \/__/ \/__/

 Many
 thanks
 to
 http://www.network-science.de/ascii/

|
40
|
-
<strong>indeed!</strong>
|
41
|
-
</textarea>
|
42
|
-
</div>
|
43
|
-
<div class='foo'>
|
44
|
-
13
|
45
|
-
<textarea>
a
</textarea><textarea>
b
</textarea><textarea>
c
</textarea>
|
46
|
-
</div>
|
47
|
-
<pre>
|
48
|
-
foo

|
49
|
-
bar
|
50
|
-
</pre>
|
51
|
-
|
@@ -1,17 +0,0 @@
|
|
1
|
-
!!!
|
2
|
-
%html
|
3
|
-
%head
|
4
|
-
%title Stop. HAML time
|
5
|
-
#content
|
6
|
-
%h1 This is a title!
|
7
|
-
%p Lorem ipsum dolor sit amet, consectetur adipisicing elit
|
8
|
-
%p{:class => 'foo'} Cigarettes!
|
9
|
-
%h2 Man alive!
|
10
|
-
%ul.things
|
11
|
-
%li Slippers
|
12
|
-
%li Shoes
|
13
|
-
%li Bathrobe
|
14
|
-
%li Coffee
|
15
|
-
%pre
|
16
|
-
This is some text that's in a pre block!
|
17
|
-
Let's see what happens when it's rendered! What about now, since we're on a new line?
|
@@ -1,66 +0,0 @@
|
|
1
|
-
#whitespace_test
|
2
|
-
= render :file => "_text_area.haml", :locals => { :value => "Oneline" }
|
3
|
-
= render :file => "_text_area.haml", :locals => { :value => "Two\nlines" }
|
4
|
-
~ render :file => "_text_area.haml", :locals => { :value => "Oneline" }
|
5
|
-
~ render :file => "_text_area.haml", :locals => { :value => "Two\nlines" }
|
6
|
-
#flattened~ render :file => "_text_area.haml", :locals => { :value => "Two\nlines" }
|
7
|
-
.hithere
|
8
|
-
~ "Foo bar"
|
9
|
-
~ "<pre>foo bar</pre>"
|
10
|
-
~ "<pre>foo\nbar</pre>"
|
11
|
-
%p~ "<pre>foo\nbar</pre>"
|
12
|
-
%p~ "foo\nbar"
|
13
|
-
%pre~
|
14
|
-
___
|
15
|
-
,o88888
|
16
|
-
,o8888888'
|
17
|
-
,:o:o:oooo. ,8O88Pd8888"
|
18
|
-
,.::.::o:ooooOoOoO. ,oO8O8Pd888'"
|
19
|
-
,.:.::o:ooOoOoOO8O8OOo.8OOPd8O8O"
|
20
|
-
, ..:.::o:ooOoOOOO8OOOOo.FdO8O8"
|
21
|
-
, ..:.::o:ooOoOO8O888O8O,COCOO"
|
22
|
-
, . ..:.::o:ooOoOOOO8OOOOCOCO"
|
23
|
-
. ..:.::o:ooOoOoOO8O8OCCCC"o
|
24
|
-
. ..:.::o:ooooOoCoCCC"o:o
|
25
|
-
. ..:.::o:o:,cooooCo"oo:o:
|
26
|
-
` . . ..:.:cocoooo"'o:o:::'
|
27
|
-
.` . ..::ccccoc"'o:o:o:::'
|
28
|
-
:.:. ,c:cccc"':.:.:.:.:.'
|
29
|
-
..:.:"'`::::c:"'..:.:.:.:.:.' http://www.chris.com/ASCII/
|
30
|
-
...:.'.:.::::"' . . . . .'
|
31
|
-
.. . ....:."' ` . . . ''
|
32
|
-
. . . ...."'
|
33
|
-
.. . ."' -hrr-
|
34
|
-
.
|
35
|
-
|
36
|
-
|
37
|
-
It's a planet!
|
38
|
-
%strong This shouldn't be bold!
|
39
|
-
%strong This should!
|
40
|
-
%textarea
|
41
|
-
~
|
42
|
-
___ ___ ___ ___
|
43
|
-
/\__\ /\ \ /\__\ /\__\
|
44
|
-
/:/ / /::\ \ /::| | /:/ /
|
45
|
-
/:/__/ /:/\:\ \ /:|:| | /:/ /
|
46
|
-
/::\ \ ___ /::\~\:\ \ /:/|:|__|__ /:/ /
|
47
|
-
/:/\:\ /\__\ /:/\:\ \:\__\ /:/ |::::\__\ /:/__/
|
48
|
-
\/__\:\/:/ / \/__\:\/:/ / \/__/~~/:/ / \:\ \
|
49
|
-
\::/ / \::/ / /:/ / \:\ \
|
50
|
-
/:/ / /:/ / /:/ / \:\ \
|
51
|
-
/:/ / /:/ / /:/ / \:\__\
|
52
|
-
\/__/ \/__/ \/__/ \/__/
|
53
|
-
|
54
|
-
Many
|
55
|
-
thanks
|
56
|
-
to
|
57
|
-
http://www.network-science.de/ascii/
|
58
|
-
%strong indeed!
|
59
|
-
.foo
|
60
|
-
~ 13
|
61
|
-
~ ['a', 'b', 'c'].map do |a|
|
62
|
-
- "<textarea>\n#{a}\n</textarea>"
|
63
|
-
%pre
|
64
|
-
~
|
65
|
-
foo
|
66
|
-
bar
|